acc*_*cme 14 javascript arrays
[undefined, undefined, undefined].map(function(val, i) { return i });
Run Code Online (Sandbox Code Playgroud)
返回[0,1,2],而
Array(3).map(function(val, i) { return i });
Run Code Online (Sandbox Code Playgroud)
返回[undefined,undefined,undefined].
为什么?
Vis*_*ioN 13
在第一种情况下,您已经定义并初始化了一个具有三个undefined值的新数组,而在第二种情况下,您只 定义了一个可能长度为3 的数组.
new Array(3) 和你一样:
var arr = [];
arr.length = 3;
Run Code Online (Sandbox Code Playgroud)
结果,具有.length隐式定义的属性,.map()方法可以对在存储器中分配的数组进行迭代,其基本上保持零定义的项(即纯空).