首先for in與for of都是可以用來遍歷數組或對象的,不同的是for in既可以編輯數組也可以遍歷對象,而for of只能用來遍歷數組
在使用for in遍歷數組時,遍歷的是每一個數組成員,在遍歷對象時,遍歷的是對象的每一項屬性key
例:
let demoObj = {
title:'發財',
desc:'悶聲發大財'
}
for(let key in demoObj){
console.log(key)
}
//(key) 'title','desc'
當然除了for in遍歷對象外,還可以使用Object.keys(demoObj)或者Object.values(demoObj)
例:
console.log(Object.keys(demoObj)) //['title','desc']輸出的是對象屬性的集合
console.log(Object.values(demoObj)) //['發財','悶聲發大財']輸出的是對象屬性值的集合
上面這些對象遍歷方法都是對象可枚舉屬性的遍歷,不包括不可枚舉屬性,若想遍歷對象屬性包括不可枚舉則可使用Object.getOwnPropertyNames(obj)
例:
console.log(Object.getOwnPropertyNames(demoObj)) //['title','desc']輸出結果為demoObj對象屬性組成的數組