所以我早就知道了
for ( var i=0, len = myArray.length; i < len; i++ ){
}
比
for ( var i=0; myArray.length; i++ ){
}
对于大型阵列。但是想知道前者真正给您带来了多少性能提升?
今天我开始做一些基准测试。我创建了一个数组并将 100,000 个数字推入其中。
var array = [];
for( var i = 0; i < 100000; i++ )
array.push(i);
然后,我通过对数组中的每个数字执行 console.log 并对过程进行计时来测试上面的两个循环。
console.time('loop');
for( var i = 0; i < array.length; i++ )
console.log(i);
console.timeEnd('loop');
对于第二次测试
console.time('loop');
for( var i = 0, len = array.length; i < len ;i++ )
console.log(i)
console.timeEnd('loop')
对此进行了几次测试后,我的结果尚无定论。我得到了两个测试用例的高和低数字。所以我的问题是,有什么更好的测试可以明确地表明预先获得长度会带来性能优势,以及这样做可以获得什么样的百分比增益?