可变变量是一种可以被修改的变量。在 JavaScript 中,只有对象和数组是可变的,原始类型不是。

(您可以使变量名称指向一个新值,但先前的值仍保留在内存中。因此需要进行垃圾回收。)

可变对象是一旦创建即可修改其状态的对象。

不可变对象是一旦创建便无法更改其状态的对象。

字符串和数字是不可变的。我们用一个例子来理解这一点:

1
2
3
4
5
6
7
var immutableString =“ Hello”;

//我们上面的代码中创建了一个带有字符串值的新对象。

immutableString = immutableString + "World";

//现在,我们将 “World” 附加到现有值上。

在将“ immutableString”附加到字符串值后,将发生以下事件:

  1. 检索immutableString的现有值
  2. “World” 被附加到immutableString的现有值之后
  3. 结果值被分配给新的内存块
  4. immutableString对象指向新创建的内存空间
  5. 以前创建的内存空间现在可以被垃圾回收了。