不可变的原始类型

时间:2011-09-14 14:53:07

标签: javascript

为什么不能在Javascript中声明原始类型是不可变的:

var $b = false;
$b = true;
alert($b); //-> true

我误解了变量对不可变的含义。

3 个答案:

答案 0 :(得分:10)

是不可变的; 变量不是。

$b = true更改$b以包含true值 不可变false值不会更改。

有些语言也支持不可变变量(C ++的const,Java的final或C#的readonly); Javascript没有。

答案 1 :(得分:0)

不可变变量是一个无法变化的变量,就像常量一样。不幸的是,JavaScript中没有真正的不可变变量(至少我知道)。

最接近的是使用带有getter方法的闭包。

答案 2 :(得分:0)

范围是可变的,truefalse不是。 您只是表明范围是可变的,而truefalse是否可变是不可变的。