两者之间有什么区别?
// Chrome console
Array(2); // [undefined × 2]
Array(2).map(() => 1); // [undefined × 2]
[...Array(2)]; // [undefined, undefined]
[...Array(2)].map(() => 1); // [1, 1]
根据什么是数组空槽?,它似乎与内存分配有关,但是为什么在后一种情况下展开运算符会突然导致内存被分配?
[...Array(2)]
相当于[undefined, undefined]
。这就是展开运算符的作用。 - Paul[undefined × 2]
不等同于[undefined, undefined]
(?) - neverendingqs