for、forEach、for-in與for-of的區別


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); }
  1. key會變成字符串(String)類型。
  2. 包括數組的私有屬性也可以打印出來,即循環不僅會遍歷數組元素,還會遍歷任意其他自定義添加的屬性,如,arr上面包含自定義屬性,arr.b,那這次循環中也會出現此b屬性。
  3. 某些情況下,上述代碼會以隨機順序循環數組。

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 並不適用於處理原有的原生對象


免責聲明!

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



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