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

  for-in和for-of乍一聽,覺得是同樣的,都是用來「遍歷」的。可是,既然開發出了兩個方法,那就必定有所區別數組

 

iterable

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

  在ES6裏,數組Arrray集合Set以及Map(目前我還不瞭解……)都是「可迭代的」對象

  這個「可迭代」添加的目的在於二blog

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

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

 

for-in

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

  

  這裏之因此輸出name,是由於for-in自己遍歷的是屬性名,而數組自己是一個對象,屬性名即下標,因此輸出的都是下標,也天然輸出了一個屬性名name遍歷

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

 

for-of

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

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

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

  

 

  好了,差很少能夠說清楚for-in和for-of的區別了(若是後續發現其餘的,會繼續補充)

相關文章
相關標籤/搜索