- /*?
- ?*?優化循環?
- ?*/??
- ?//優化前??
- ?for(var?i=0;?i?<?items.length;?i++){?//判斷條件:(1)i<items.length;?(2)i<items.length?==?true;??
- ????process(items[i]);??
- ?}??
- ???
- ?//優化后??
- ?var?count?=?items.length;?//把length屬性放在局部變量里??
- ?for(var?i=count;i--;){?//判斷條件:i?==?ture?;?(當i=0時,此處?i?會轉換為false)??
- ????process(items[i]);??
- ?}??
說明:筆記來自《高性能javascript》
帶“判斷條件”的注釋看起來似乎有問題,但細想也對。?i<items.length的判斷結果是true或false,如果是ture才調用process()。這里的判斷條件實際是分步的,如果畫上流程圖就清楚了。