1. 程式人生 > >for...in與for...of的區別

for...in與for...of的區別

for...in

1.遍歷物件的可列舉屬性(屬性描述符enumerable為true的屬性,通過Object.defineProperty(obj,prop,descriptor)修改,通過obj.propertyIsEnumerable(prop)進行判斷)

2.向上查詢原型鏈中的屬性(如僅想遍歷自身屬性,加一層if,通過hasOwnProperty()篩選即可)

for...of

1.遍歷可迭代物件的屬性(可迭代物件:物件必須實現 @@iterator 方法,,這意味著這個物件(或其原型鏈中的一個物件)必須具有帶 Symbol.iterator 鍵的屬性)

2.僅迭代自身屬性