JavaScript中的数字是不可变的吗?

时间:2012-05-18 07:22:36

标签: javascript

  

可能重复:
  javascript numbers- immutable

我读过Douglas Crockford的书“JavaScript:好零件”。它说JavaScript中的数字是不可变的。但JavaScript中的数字是按值复制的,我们可以 使用operator ++来更改值。那么为什么说这是不可改变的呢?而且,如果是的话 不可变的,为什么数字是按值复制的?

2 个答案:

答案 0 :(得分:5)

它们是不可变的,因为它们是按值复制的。

当你这样做时

var x = 4;
x += 1;

您尚未将号码4更改为号码5。您已将变量x中存储的值从4更改为5

答案 1 :(得分:0)

修改对象的成员时,可以修改其内容。变量(即参考)的值保持不变。这是可变的,

声明字符串时,它有一个值,但是当您更改该值时,实际上会创建一个新字符串。这意味着它是不可变的。

与数字相似。你无法将3改为4. A 3总是3,永远不会是其他任何东西。因此,当您将变量分配给另一个数字时,您将在内存中创建一个新数字,而不是将某个变量指向的某些内存的内容分配给不同的值。