【发布时间】:2017-05-29 17:41:28
【问题描述】:
两者有什么区别?
// Chrome console
Array(2); // [undefined × 2]
Array(2).map(() => 1); // [undefined × 2]
[...Array(2)]; // [undefined, undefined]
[...Array(2)].map(() => 1); // [1, 1]
基于What are Array empty slots?,貌似和内存分配有关,但是为什么后一种情况下spread算子会突然导致内存分配呢?
【问题讨论】:
-
[...Array(2)]等价于[undefined, undefined]。这就是展开运算符的作用。 -
但是
[undefined × 2]不等于[undefined, undefined](?) -
不,不是,就像您链接到的问题(及其重复项)所说的那样。
标签: javascript arrays