我从书中得知,您应该为循环编写这样的代码:
for(var i=0, len=arr.length; i < len; i++){ // blah blah }
因此arr.length不会每次都计算。
arr.length
其他人则说编译器会对此做一些优化,因此您可以编写:
for(var i=0; i < arr.length; i++){ // blah blah }
我只想知道哪种是最佳实践?
在使用大多数现代浏览器执行此测试之后…
http://jsben.ch/dyM52
当前,最快的循环形式(我认为在语法上最明显)。
具有长度缓存的循环的标准
for (var i = 0, len = myArray.length; i < len; i++) { }
我想肯定的是,我为JavaScript引擎开发人员鼓掌。应该优化运行时间以提高 清晰度 , 而不是聪明 。