一、数据
测试所用的对象
let obj = {
name:'张三',
age:12,
gender:'男',
hobby:'唱歌'
}
二、方法
- Object.keys() 方法 - 遍历自身可枚举的属性(可枚举,非继承属性)
该方法会返回一个由一个给定对象的自身可枚举属性组成的数组,数组中的属性名的排列顺序和使用 for…in 遍历该对象时返回的顺序一致(两者的区别是 for …in 还会枚举其原型 链上的属性 )
let keys = Object.keys(obj)
console.log(keys); // ['name', 'age', 'gender', 'hobby']
- Object.getOwnPropertyNames()方法 - 遍历自身的所有属性(可枚举,不可枚举,非继承属性)
该方法返回一个由指定对象的所有自身属性组成的数组(包括不可枚举属性但不包括 Symbol 值作为名称的属性)
let keys = Object.getOwnPropertyNames(obj)
console.log(keys); // ['name', 'age', 'gender', 'hobby']
- for in 遍历对象的属性 - 遍历可枚举的自身属性和继承属性 (可枚举,可继承的属性)
注: hasOwnProperty()方法判断对象是有某个属性(本身的属性,不是继承的属性)
let keys = []
for (let key in obj) {
keys.push(key)
}
console.log(keys); // ['name', 'age', 'gender', 'hobby']