1. for…in
var obj = {
name:'小明',
age:18,
sex:'man'
}
for(var key in obj) {
console.log(key); // name,age,sex
console.log(obj[key]); //小明,18,man
}
2. Object.keys()
var obj = {
name:'小明',
age:18,
sex:'man'
}
console.log(Object.keys(obj)) //["name", "age", "sex"]
// 打印结果为obj对象的key组成的数组
3. Object.values()
var obj = {
name: "小明",
age: 18,
sex: "man",
};
console.log(Object.values(obj)); //["小明", 18, "man"]
// 打印结果为obj对象的value组成的数组
4. Object.getOwnPropertyNames()
var obj = {
name: "小明",
age: 18,
sex: "man",
};
console.log(Object.getOwnPropertyNames(obj)); // ["name", "age", "sex"]
// 打印结果为obj对象的key组成的数组
// 通过对这个数组做遍历可取得对应的value值,如下:
Object.getOwnPropertyNames(obj).forEach(key=>{
console.log(obj[key]); // 小明,18,man
})
需要注意的是: for in 以及Object.keys和Object.values只能返回这个对象可枚举的属性,而Object.getOwnPropertyNames可以得到该对象的所有属性,包括不可枚举的