我从书上了解到,你应该这样写 for 循环:
for(var i=0, len=arr.length; i < len; i++){
// blah blah
}
所以不会每次都计算 arr.length
。
其他人说编译器会对此做一些优化,所以你可以写:
for(var i=0; i < arr.length; i++){
// blah blah
}
我只想知道哪种方法在实践中是最好的?
原文由 wong2 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用大多数现代浏览器执行此测试后:
https://jsben.ch/wY5fo
目前,最快的循环形式(在我看来也是语法上最明显的)。
具有长度缓存的标准 for 循环
我想说,这绝对是我为 JavaScript 引擎开发人员鼓掌的一个案例。运行时应该优化 _清晰,而不是聪明_。