我正在阅读 Nicholas Zackas 的高性能 Javascript,他在其中讨论了通过反转 for 循环并最小化其属性查找来优化它。
代替:
for (var i = 0; i < items.length; i++ ) {
processItems(items[i]);
}
你得到:
for (var i = items.length; i--; ) {
processItems(items[i]);
}
在撰写本文时,执行时间“比原来快了 50%-60% ”。然而,我创建了一个jsperf,在 Firefox 和 Chrome 中,我注意到优化的 for 循环实际上明显变慢,尤其是在 Firefox 中。
较新的浏览器是否以不同的方式优化循环?现在编写 for 循环的最有效方法是否只是基本方法?