for in和for on的區別

2021-10-10 20:48:14 字數 867 閱讀 6471

for of:遍歷陣列

es6 中,如果我們要遍歷乙個陣列,可以這樣做:

let arr1 = [2, 6, 8, 5];

for (let value of arr1)

列印結果:26

85for … of 的迴圈可以避免我們開拓記憶體空間,增加**執行效率,所以建議大家在以後的工作中使用 for…of 遍歷陣列。

注意,上面的陣列中,for … of獲取的是陣列裡的值;如果採用for … in遍歷陣列,則獲取的是 index 索引值。

map 物件的遍歷

for … of既可以遍歷陣列,也可以遍歷 map 物件。

for in:遍歷物件的屬性

for … in主要用於遍歷物件,不建議用來遍歷陣列。

語法:for (const 變數 in 物件)

解釋:物件中有幾個屬性,迴圈體就會執行幾次。每次執行時,會將物件中的每個屬性的 屬性名 賦值給變數。

語法舉例:

for (var key in obj)

舉例:const obj = ,

};

// 遍歷物件中的屬性

for (const key in obj)

列印結果:

屬性名:name

屬性值:smyhvae

屬性名:age

屬性值:26

屬性名:gender

屬性值:男

屬性名:address

屬性值:shenzhen

屬性名:sayhi

屬性值:function()

for in 遍歷陣列(不建議)

另外,for in 當然也可以用來遍歷陣列(只是不建議),此時的 key 是陣列的索引。

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迴圈和for in的區別

for var i in arr 和for var i 0 i前者迴圈的是屬性,後者迴圈的才是陣列。如果專案中對陣列進行了擴充套件,不能使用前者,否者擴充套件陣列屬性時擴充套件的函式體也會被當成資料返回。比如說我們擴充套件乙個陣列屬性array.prototype.remove function v...

for in 和for of的區別

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