Javascript 中不变性的定义是什么?每种程序语言都一样吗?

What is the definition of immutability in Javascript? Is the same for every program language?

我知道在 JS 中原始值是不可变的值而对象是可变的,但是,这到底是什么意思?

例如:

var foo = 1;

然后我们有

foo = 2;

foo 变异了吗?

是否适用于所有语言?还是每个人都按照自己的规则应用它?

一个Immutable Object是一个创建后状态不能改变的对象。它适用于值,如果您希望变量不可变,则必须将它们声明为常量

var str = 'hello world';

str[0] = '1';

// value remains unchanged
console.log(str);

const x = 1;
// err cannot change value
x = 2;
console.log(x);

正如@Pointy 所说,当您谈论不变性和可变性时,您谈论的是值而不是变量。

在 JavaScript 中,字符串和数字在设计上是不可变的。也许这些例子可以帮助你理解 https://www.sitepoint.com/immutability-javascript/