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
的数组。