淺談forEach( ),for in 和 for of 的區別

forEach

用來遍歷數組,缺點是不可控制,無法用return或者break跳出循環
寫法:

arr.forEach(function(value,index,arr){
        console.log(value);
})

for in

一般用於遍歷可枚舉的對象,遍歷時不僅能訪問到對象的屬性,還可以順着原型鏈去訪問原型的屬性。key表示obj對象的每一個鍵值對的鍵,在循環中,需要用obj[key]來取屬性值。
寫法:

for(var key in obj){
     	console.log(obj[key]);
}

for of

ES6的新增語法,可以用來循環數組,Set,Map等結構。遍歷時取到的是值(value)如果想用for of遍歷對象,則使用Object.keys()遍歷,遍歷得到key

能夠被for of正常遍歷的,都需要一個遍歷器Iterator。而數組、字符串、Set、Map結構,早就內置好了Iterator(迭代器),它們的原型中都有一個Symbol.iterator方法,而Object對象並沒有實現這個接口,使得它無法被for of遍歷

寫法:

for(var value of arr){
        console.log(value);
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章