for in和for of的區別

2021-10-12 06:51:40 字數 653 閱讀 1196

for···in和for···of的區別

首先一句話:(for···in取key,for···of取value)

1.從遍歷陣列角度來說,for···in遍歷出來的是key(下標),for···of遍歷出來的是value(陣列的值)

var arr =[99

,88,66

,77];

for(

let i in arr)

for(

let i of arr)

2.從遍歷字元轉的角度來說,同陣列一樣。

3.從遍歷物件的角度來說,for···in遍歷出來的為物件的key,但for···of會直接報錯。

var obj =

;for

(var i in obj)

for(

var i of obj)

4.如果要使用for···of遍歷物件,需要配合object.keys()一起使用。

var person=

}for

(var key of object.

keys

(person)

)

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陣列實際上也是乙個物件,它的每個元素的索引被視為乙個屬性。當...