雖然與的JavaScript新的陣列功能發揮的性能差異的,我看到的性能在下面的代碼中的一些重大分歧:的jsfiddle:http://jsfiddle.net/jKUm5/原因在不同的迭代器
最慢for var i in array
(67.2ms) :
for (var a=0;a<amount;a++) {
for (var b in arr) {
arr[b]++;
}
}
JS 5.1 array.forEach
(2.1ms):
for (var c=0;c<amount;c++) {
arr.forEach(function(e,i,a) {
arr[i]++;
});
}
最快(默認)for var i=0;i<array.length;i++
(1.1ms):
for (var d=0;d<amount;d++) {
for (var e=0;e<arr.length;e++) {
arr[e]++;
}
}
我認爲這是使用for var i in array
而不是默認的一個很好的做法,但似乎默認是最快速!
我的主要問題是:
- 什麼是落後的
for var i in array
的糟糕表現的原因是什麼? - 默認迭代器和新的迭代器之間有什麼區別(有另一個迭代器方法的必要性)?
不應在數組中使用for-in循環,而應使用對象。 – adeneo