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

LaP*_*oca 0 javascript ecmascript-6

所以在运行此代码之后

'use strict';
var myNewArray = Array(...[,,]);
console.log(myNewArray);
Run Code Online (Sandbox Code Playgroud)

我明白了

[undefined, undefined]
Run Code Online (Sandbox Code Playgroud)

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

Sur*_*yan 7

您已undefined在数组中提供了值[,,].

最后一项未计算,因为JavaScript将其视为尾随逗号.因此,如果undefined提供,它将被抛出数组.

     [ , , ]
   //     ^^ -> Here is nothing, so array currently has 2 items with `undefined`
Run Code Online (Sandbox Code Playgroud)

如果您在其后面给出一个值,它将被添加到结果数组中.

const myNewArray = Array(...[,,1]);
console.log(myNewArray);
Run Code Online (Sandbox Code Playgroud)

  • 我已经解释过了 (4认同)