Array.prototype.slice与Array中的字符串的行为

时间:2017-06-05 22:59:23

标签: javascript

Array#slice上的MDN page声明:

  

对于字符串,数字和布尔值(不是String,Number和Boolean   对象),slice将值复制到新数组中。改变了   一个数组中的字符串,数字或布尔值不会影响另一个数组。

当然,不会复制字符串文字,即引用类型(公认具有值语义)。而是复制引用?

2 个答案:

答案 0 :(得分:2)

字符串文字产生不可变的原始值。那些不是参考值。

这些字符串可以通过JS引擎中对字符数组的共享引用来实现,就是实现细节。正如你自己所说,字符串确实在JS中具有价值语义,而这就是最重要的。

答案 1 :(得分:0)

不,string文字 在JavaScript中被视为原始类型,就像number s一样。

请参阅MDN - Strings # Distinction between string primitives and String objects