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...