Javascript ES6传播一个未定义的数组... [,,]

时间:2018-03-14 19:16:26

标签: javascript ecmascript-6

运行此代码后

[undefined, undefined]

我明白了

{{1}}

任何人都可以解释为什么我只得到2个未定义的吗?

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中清楚地看到尾随的省略元素不计入数组的长度。

  

未定义已删除的数组元素。如果在数组的末尾省略了元素,则该元素不会影响数组的长度。