现在的位置: 首页 > 综合 > 正文

【简明笔记】循环条件的优化

2013年11月16日 ⁄ 综合 ⁄ 共 894字 ⁄ 字号 评论关闭
[javascript]
view plain
copy
  1. /* 
  2.  * 优化循环 
  3.  */  
  4.  //优化前  
  5.  for(var i=0; i < items.length; i++){ //判断条件:(1)i<items.length; (2)i<items.length == true;  
  6.     process(items[i]);  
  7.  }  
  8.    
  9.  //优化后  
  10.  var count = items.length; //把length属性放在局部变量里  
  11.  for(var i=count;i--;){ //判断条件:i == ture ; (当i=0时,此处 i 会转换为false)  
  12.     process(items[i]);  
  13.  }  

说明:笔记来自《高性能javascript》

带“判断条件”的注释看起来似乎有问题,但细想也对。 i<items.length的判断结果是true或false,如果是ture才调用process()。这里的判断条件实际是分步的,如果画上流程图就清楚了。

[javascript]
view plain
copy
  1. /* 
  2.  * 优化循环 
  3.  */  
  4.  //优化前  
  5.  for(var i=0; i < items.length; i++){ //判断条件:(1)i<items.length; (2)i<items.length == true;  
  6.     process(items[i]);  
  7.  }  
  8.    
  9.  //优化后  
  10.  var count = items.length; //把length属性放在局部变量里  
  11.  for(var i=count;i--;){ //判断条件:i == ture ; (当i=0时,此处 i 会转换为false)  
  12.     process(items[i]);  
  13.  }  

说明:笔记来自《高性能javascript》

带“判断条件”的注释看起来似乎有问题,但细想也对。 i<items.length的判断结果是true或false,如果是ture才调用process()。这里的判断条件实际是分步的,如果画上流程图就清楚了。

抱歉!评论已关闭.