for in和for of的區別

2022-06-08 03:12:08 字數 765 閱讀 2323

for in:一般用於遍歷普通物件(即沒有部署iterator介面),遍歷的是屬性。

for of:es6新增的遍歷方式,能遍歷大部分的型別,遍歷的是值。for...of允許你遍歷 arrays(陣列), 類陣列物件(array like object),strings(字串), maps(對映), sets(集合)等可迭代的資料結構等。如果物件部署了iterator介面,也可以遍歷。

遍歷普通物件

遍歷陣列(陣列是特殊的物件,for in遍歷的結果是屬性名,是字串,並且for of只能遍歷數值屬性,字串的遍歷同理。而for of遍歷的則是

陣列中的值。)

字串的遍歷

for of 和 for in 的區別

var obj for var key of obj 出錯 uncaught typeerror obj is not iterablevar obj for var key in obj 結果是 a b cvar arr 3 5,7 for var i in arr 結果是 0 1 2var ar...

for in 和for of的區別

es5的話也可以使用foreach,es5具有遍歷陣列功能的還有map filter some every reduce reduceright等,只不過他們的返回結果不一樣。但是使用foreach遍歷陣列的話,使用break不能中斷迴圈,使用return也不能返回到外層函式。array.proto...

for in 和for of 的區別

最近在學習es6的知識,看到了for of 這新的迴圈方法,所以就測試一下和以前for in有什麼不同,一下是一些不同地方,當然還有其他不同的,暫時還沒有發現 for in迴圈由於歷史遺留問題,它遍歷的實際上是物件的屬性名稱。乙個array陣列實際上也是乙個物件,它的每個元素的索引被視為乙個屬性。當...