首先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对象属性组成的数组