JS中的for和for in循環


1、for循環通常用來遍歷數組或類數組對象

模式1:長度緩存

for(var i=0,max=arr.length;i<max;i++){
  //your code
}

模式2:逐減,與零比較比與非零比較速度快

var i,myarrary=[];
for(i=myarray.length;i--;){
//code
}

var myarray=[],i=myarray.length;
while(i--){
//code
}

2、for-in循環用來遍歷非數組對象。

與for循環不同的是,for-in循環是對對象每個屬性(包括對象原型鏈的屬性)的枚舉,並且它並不是按照屬性排列的順序(無序)來的。

模式1:object.hasOwnProperty(propname); //如果proname是非繼承屬性,返回true;如果不存在或是從原型鏈繼承屬性,返回false。

for(var i in man){
if(man.hasOwnProperty(i)){
      //code
  }
}

模式2:用call

var i,hasOwn = Object.prototype.hasOwnProperty;
for(i in man) if(hasOwn.call(man,i)){
    //code
}

 


免責聲明!

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



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