为什么不能在Javascript中声明原始类型是不可变的:
var $b = false;
$b = true;
alert($b); //-> true
我误解了变量对不可变的含义。
答案 0 :(得分:10)
值是不可变的; 变量不是。
$b = true
更改$b
以包含true
值
不可变false
值不会更改。
有些语言也支持不可变变量(C ++的const
,Java的final
或C#的readonly
); Javascript没有。
答案 1 :(得分:0)
不可变变量是一个无法变化的变量,就像常量一样。不幸的是,JavaScript中没有真正的不可变变量(至少我知道)。
最接近的是使用带有getter方法的闭包。
答案 2 :(得分:0)
范围是可变的,true
和false
不是。
您只是表明范围是可变的,而true
或false
是否可变是不可变的。