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);
}