for in與for of的區別

2021-08-28 19:15:07 字數 635 閱讀 5983

1.遍歷物件的可列舉屬性

(enumerable:true,通過object.defineproperty(obj,prop,descriptor)修改,通過obj.propertyisenumerable(prop)進行判斷)

2.向上查詢原型鏈中的屬性

(如僅想遍歷自身屬性,加一層if,通過hasownproperty()篩選)

1.遍歷可迭代物件的屬性

(可迭代物件包括arraymapsetstringtypedarray,arguments 物件等,普通物件如需使用可用object.keys(obj)訪問)

2.僅迭代自身屬性,且不含自定義屬性的值

var arr=[1,2,3,'hi'];

arr.name='test';

for(let key in arr) //0,1,2,3,name

for(let val of arr) //1,2,3,hi

參考:

for of 與 for in的區別

1 2 3 4 5 6 7 8 array.prototype.method function varmyarray 1,2,4,5,6,7 myarray.name 陣列 for varindexinmyarray 使用for in 也可以遍歷陣列,但是會存在以下問題 1.index索引為字串型數...

for of 與 for in的區別

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

for of 與 for in的區別

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