字符串的不可变,指的是字符串值不可变,虽然看上去可以改变内容,但其实是地址变了,在内存中开辟了一个新的内存空间。
var str = 'abc';
str = 'hello';
当重新给 str 赋值的时候,常量 'abc' 不会被修改,依然在内存中。
给 str 赋值为 'hello' 的时候,会重新在内存中开辟空间,这个特点就是字符串的不可变。
由于字符串的不可变,在大量拼接字符串的时候会有效率问题。
var str = '';
for (var i = 0; i < 1000000; i++) {
str += i;
}
// 这个结果需要花费大量的时间来显示,因为需要不断的开辟新的空间
console.log(str);
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。