javascript如何寫一個for循環


一個非常簡單的for循環,也有不少的學問。假如,我們的目標是要遍歷一個dom結點的所有孩子結點,然后打印結點的內容。

在javascript下,我剛學習的時間,我會這樣寫。

for(var i = 0; i<d.childNodes.length;i++){
  var item = d.childNodes[i];
  //dosomething about item...        
}

這個時候,細心的同學,已經發現了。每次計算.length的性能是非常差的。 然后第一版本的優化如下

for(var i = 0,len = d.childNodes.length ; i< len ;i++){
  var item = d.childNodes[i];
  //dosomething about item...        
}

有沒有更好的優化方案呢?

for(var i = 0; item = d.childNodes[i] ;i++){
  //dosomething about item...        
}

發現了沒有。 用一句item=d.childNodes[i], 即完成了判斷,又完成了賦值,看上去,是不是很舒服呢?而且不需要計算length。 性能也是不是更好呢?

 

注間:這種方法,適合數字類型的數組的遍歷循環, 如果一個數組的索引是這樣的 

 

var a = [1,3,11];

面對這樣的數組,可一定要小心了, 它找a[1] ,發現沒有,就直接不往下遍歷了。親。。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM