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/
我知道在 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/