我注意到本机 forEach 有时即使对于小型数组来说也太慢了。看这个例子:
var a = [], b = [];
a[1234567] = 'foo';
b[10] = 'bar';
a.forEach(function(arg1, arg2) { console.log(arg1, arg2); }); //1
//vs
b.forEach(function(arg1, arg2) { console.log(arg1, arg2); }); //2
在我的 Chromium(25.0.1364.160 Ubuntu 12.04)中,第 1 行和第 2 行的执行时间是不同的数量级。我知道a的长度等于 1234568,而b的长度等于 10。但是本机 forEach 实现是否如此幼稚?a和b都只包含一个元素。如何解释这种行为?