2019-01-07T11:35:28Z||2019-01-07T11:35:28Z


首先看代码:

Array(10)
// (10) [empty × 10]
[...Array(10)]
// (10) [undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined]
Array(10).length
// 10
Array(10).forEach(() => console.log('a'))
// undefined
new Array(10)
// (10) [empty × 10]
(new Array(10)).forEach(() => console.log('a'))
// undefined

看来new Array()Array()是完全一样的,但是会返回一个空数组,.length是正确的,但是forEach不会执行。

但是Spread operator ...将会把这个稀疏数组转换成都是undefined的数组。