- /*
- *优化循环
- */
- //优化前
- for(vari=0;i<items.length;i++){//判断条件:(1)i<items.length;(2)i<items.length==true;
- process(items[i]);
- }
- //优化后
- varcount=items.length;//把length属性放在局部变量里
- for(vari=count;i--;){//判断条件:i==ture;(当i=0时,此处i会转换为false)
- process(items[i]);
- }
说明:笔记来自《高性能javascript》
带“判断条件”的注释看起来似乎有问题,但细想也对。i<items.length的判断结果是true或false,如果是ture才调用process()。这里的判断条件实际是分步的,如果画上流程图就清楚了。
- /*
- *优化循环
- */
- //优化前
- for(vari=0;i<items.length;i++){//判断条件:(1)i<items.length;(2)i<items.length==true;
- process(items[i]);
- }
- //优化后
- varcount=items.length;//把length属性放在局部变量里
- for(vari=count;i--;){//判断条件:i==ture;(当i=0时,此处i会转换为false)
- process(items[i]);
- }
说明:笔记来自《高性能javascript》
带“判断条件”的注释看起来似乎有问题,但细想也对。i<items.length的判断结果是true或false,如果是ture才调用process()。这里的判断条件实际是分步的,如果画上流程图就清楚了。
本文探讨了在JavaScript中优化循环的方法,通过将数组长度属性放入局部变量,并使用该变量进行循环迭代,从而减少不必要的条件判断,实现性能提升。文章详细解析了优化前后的代码对比,解释了看似存在问题的注释实际上蕴含的正确逻辑。
1430

被折叠的 条评论
为什么被折叠?



