for of 和 for in 的區別

2021-08-20 04:55:09 字數 2022 閱讀 2380

var obj =};

for(

var key of obj)

// 出錯:

// uncaught typeerror: obj is not iterable

var obj =};

for(

var key in obj)

// 結果是:

// a

// b

// c

var arr =[3

,5,7

];for(

var i in arr)

// 結果是:

// 0

// 1

// 2

var arr =[3

,5,7

];for(

var i of arr)

// 結果是:

// 3

// 5

// 7

for-of 無法遍歷 不可迭代物件

可迭代物件包括: array,map,set,string,typedarray,arguments等等

for-of 遍歷的是值,for-in遍歷的是key

for-of

let iterable =

newmap([

["a",1

],["b",2

],["c",3

]]);

for(

let entry of iterable)

// ["a", 1]

// ["b", 2]

// ["c", 3]

for-in
let iterable =

newmap([

["a",1

],["b",2

],["c",3

]]);

for(

let entry in iterable)

// 啥都不輸出

for-of
let iterable =

newset([

1,1,

2,2,

3,3]

);for(

let value of iterable)

// 1

// 2

// 3

for-in
let iterable =

newset([

1,1,

2,2,

3,3]

);for(

let value in iterable)

// 啥都不輸出

object

.prototype.

key1

=function()

;array

.prototype.

key2

=function()

;var arr =[3

,5,7

];arr.foo =

'hello'

;for

(var i in arr)

// 結果是:

// 0

// 1

// 2

// foo

// key1

// key2

object

.prototype.

key1

=function()

;array

.prototype.

key2

=function()

;var arr =[3

,5,7

];arr.foo =

'hello'

;for

(var i in arr)

}// 結果是:

// 0

// 1

// 2

// foo

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

for in 和 for of 的區別

迴圈型別 獲取鍵值 獲取鍵名 可以遍歷物件 for in 否是 是for of 是否 否let arr red blue yellow 使用for in 遍歷 for let item in arr 0,1,2使用for of 遍歷 for let item of arr red,blue,yell...