检查对象中是否存在某个属性
- 一般通过点的方式判断
if(person.age){
//操作
}
- 这样判断方式是不正确的,因为在js中,当if判断中的值是一个对象,非空字符串,非空数字或true时,结果为真。当是一个null,undefied,0,false,NaN,空字符串结果为假。由于对象属性可以包含这些为假的值,可能会导致错误。比如person.age=0,虽然age属性确实存在,但是if条件确为假。
- 应该这样判断对象中是否存在某个属性:in操作符
if(age in person){
//操作
}
对象的属性枚举
- for-in
var obj = {
name:'aa',
age:2
}
for(item in obj){
console.log(item)// 返回健
console.log(obj[item])//返回值
}
- 获取对象中所有的健
- Object.keys() 返回数组
- for-in 和Object.keys()的区别
- for-in会遍历自有属性和原型属性
- Object.keys()只会遍历自有属性