let arr=[1,2,3,4,5];
arr.b='100';
for
for(let i=0;i<arr.length;i++){
console.log(arr[i]);
}
for是編程式
forEach
arr.forEach(function(i){
console.log(item);
});
forEach是聲明式(不關心如何實現),沒辦法使用 break 語句跳出循環,或者使用return從函數體內返回。
for in
for(let key in arr){
console.log(key);
}
- key會變成字符串(String)類型。
- 包括數組的私有屬性也可以打印出來,即循環不僅會遍歷數組元素,還會遍歷任意其他自定義添加的屬性,如,
arr
上面包含自定義屬性,arr.b
,那這次循環中也會出現此b
屬性。 - 某些情況下,上述代碼會以隨機順序循環數組。
for of
for(let val of arr){
console.log(val);
}
支持return
,並且是值of
數組(不能遍歷對象)
1. 可以避免所有 for-in 循環的陷阱
2. 不同於 forEach(),可以使用 break, continue 和 return
3. for-of 循環不僅僅支持數組的遍歷。同樣適用於很多類似數組的對象
4. 它也支持字符串的遍歷
5. for-of 並不適用於處理原有的原生對象