for in
for in 可以在对象中枚举所有的属性
(enumerable 标志为 true,可枚举)
所以也会枚举到原型链上的所有属性
typeof
我们一般可以使用 typeof 来检测对象中是否有该属性,这个检测也包含原型链里的属性
如果有,返回该属性值的类型
如果没有,返回 undefined
hasOwnProperty
如果想要只枚举该对象的属性,或者检测该对象自己是否有该属性
可以调用该对象的方法:obj.hasOwnProperty(key)
函数返回 true 或 false 表明该属性是否是该对象的属性
let obj = {
name: 'abc',
id: '9'
}
for(let key in obj){
if(obj.hasOwnProperty(key)){
console.log(key+' : '+obj[key])
}
}
console.log('end')
name : abc
id : 9
end