JavaScript字符串是不可变的吗?

不同编程语言对字符串的规范有所不同,但大多数语言将其视为引用类型。但是JavaScript中的字符串是不同的。它们是不可变的原始类型。这意味着字符串中的字符不能被改变,对字符串的任何操作实际上都会创建新的字符串。

const x = 'type';
x[1] = 'a';       // 什么都不会发生,不会抛出错误
console.log(x);   // 输出:'type'

如果我们将字符串的工作方式类比于数字,会有所帮助。数值也是不可变的原始类型。例如,如果你可以改变数字的值,你就可以将值42的含义改变为另一个数字,比如13。同样地,你不能将值为gem的字符串变为gym