JavaScript字符串是不可变的吗?
不同编程语言对字符串的规范有所不同,但大多数语言将其视为引用类型。但是JavaScript中的字符串是不同的。它们是不可变的原始类型。这意味着字符串中的字符不能被改变,对字符串的任何操作实际上都会创建新的字符串。
const x = 'type';
x[1] = 'a'; // 什么都不会发生,不会抛出错误
console.log(x); // 输出:'type'
如果我们将字符串的工作方式类比于数字,会有所帮助。数值也是不可变的原始类型。例如,如果你可以改变数字的值,你就可以将值42
的含义改变为另一个数字,比如13
。同样地,你不能将值为gem
的字符串变为gym
。