我读过Douglas Crockford的书“JavaScript:好零件”。它说JavaScript中的数字是不可变的。但JavaScript中的数字是按值复制的,我们可以 使用operator ++来更改值。那么为什么说这是不可改变的呢?而且,如果是的话 不可变的,为什么数字是按值复制的?
答案 0 :(得分:5)
它们是不可变的,因为它们是按值复制的。
当你这样做时
var x = 4;
x += 1;
您尚未将号码4
更改为号码5
。您已将变量x
中存储的值从4
更改为5
。
答案 1 :(得分:0)
修改对象的成员时,可以修改其内容。变量(即参考)的值保持不变。这是可变的,
声明字符串时,它有一个值,但是当您更改该值时,实际上会创建一个新字符串。这意味着它是不可变的。
与数字相似。你无法将3改为4. A 3总是3,永远不会是其他任何东西。因此,当您将变量分配给另一个数字时,您将在内存中创建一个新数字,而不是将某个变量指向的某些内存的内容分配给不同的值。