1. in 和 hasOwnProperty

in会检查对象和它的整条原型链,hasOwnProperty只会检查对象本身,不会检查原型链

let a = {name: 'rick'}
let b = {}
b.__proto__ = a
b.hasOwnProperty('name') // fasle
'name' in b // true

2. 用undefined判断

var o={x:1};
o.x!==undefined;        //true
o.y!==undefined;        //false

 

相关文章: