这样做之后:
var collection = ['foo', 'bar', 'john'];
console.log(collection);
collection.splice(0,1)
console.log(collection);
我明白了
为什么Chrome控制台在拼接之前只显示两个元素而不是全部三个元素?
答案 0 :(得分:3)
tl; dr:因为变量只保存对象的引用,并且控制台在显示对象时不会进行深度克隆。
collection
变量引用到Array
,因为Array
是Object
s。在JavaScript中,变量只将引用保存到对象。collection
数组时,collection
变量引用/指向更改的数组。控制台在显示对象之前不会对其进行深度克隆。
答案 1 :(得分:-1)
结果是正确的。 splice(x,y)方法从x索引开始删除元素,y指定要删除的元素数量ie;在你的情况下1个元素。 需要记住的是拼接会改变你的原始阵列。