运行此代码后
[undefined, undefined]
我明白了
{{1}}
任何人都可以解释为什么我只得到2个未定义的吗?
答案 0 :(得分:6)
您在数组undefined
中提供了[,,]
个值。
最后一项未计算,因为JavaScript将其视为尾随逗号。因此,如果提供undefined
,它将被抛弃。
[ , , ]
// ^^ -> Here is nothing, so array currently has 2 items with `undefined`
如果您在其后面给出一个值,它将被添加到结果数组中。
const myNewArray = Array(...[,,1]);
console.log(myNewArray);
答案 1 :(得分:1)
除了Suren的答案之外,您还可以在specification中清楚地看到尾随的省略元素不计入数组的长度。
未定义已删除的数组元素。如果在数组的末尾省略了元素,则该元素不会影响数组的长度。