for in 和 for of 的區別

2022-01-14 13:01:31 字數 583 閱讀 3161

最近突然發現雖然整天做專案,但是基礎的東西忘得越來越多了,所以我準備沒事就回顧回顧基礎知識,今天來回顧一下for in 和for of的區別

首先來看for in 

for in 可以用來遍歷陣列,但是會有以下幾個問題

1.index索引為字串型數字,不能直接進行幾何運算

2.遍歷順序有可能不是按照實際陣列的內部順序

3.使用for in會遍歷陣列所有的可列舉屬性,例如下面例子上的原型方法method和name屬性都會被遍歷出來

array.prototype.method  = function

()var myarray = [1,2,3,4,5]

myarray.name = "陣列"

for (var key in myarray)

運送結果:

如果我們不想要method和name呢,這樣的話我們可以使用es6的for of

特別注意:for in 遍歷的是陣列的索引(即鍵名),for of遍歷的是value值

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