ES6——for-in和for-of區別


  for-in和for-of乍一聽,以為是一樣的,都是用來“遍歷”的。但是,既然開發出了兩個方法,那就一定有所區別

 

iterable

  首先,ES6中添加了一個iterable類型,翻譯過來叫“可迭代”。

  在ES6里,數組Arrray集合Set以及Map(目前我還不了解……)都是“可迭代的”

  這個“可迭代”添加的目的在於二

  1.解決for-in遍歷索引屬性名)的問題

  2.解決了map、set無法用下標遍歷的問題

 

for-in

  先看看目的一的問題,即for-in在數組中的使用

  

  這里之所以輸出name,是因為for-in本身遍歷的是屬性名,而數組本身是一個對象,屬性名即下標,所以輸出的都是下標,也自然輸出了一個屬性名name

  但問題是,數組中最需要的是每一項,也就是屬性值

 

for-of

  看了for-in在數組中的表現,我們發現,必須找到一個可以直接遍歷數組每一項的方法

  因此,for-of方法就應運而生,遍歷時獲得其中的每一項(屬性值)

  同時,對於外界給其作為對象而添加的屬性值則不會輸出(這里name的4沒有輸出

  

 

  好了,差不多可以說清楚for-in和for-of的區別了(如果后續發現其他的,會繼續補充)


免責聲明!

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



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