1. 对象.属性 === undefined
- 如果对象身上没有某个属性的时候,读取的时候,得到的会是
undefined;
- 这种方式有个弊端,就是当对象身上有个属性,其属性值为undefined的时候,就不能使用这种方法了
2. in运算符
- 语法:
'属性名' in 对象名
- 返回值:
- 布尔值;
true: 该对象或原型上有这个属性;
false:该对象或原型上没有这个属性;
- 示例展示:

3. Object.hasOwnProperty()函数
- 语法:
对象.hasOwnProperty('属性名')
- 返回值:
- 布尔值;
true:该对象本身中有这个属性(不判断原型上的属性);
false:该对象本身中没有这个属性(不判断原型上的属性);
- 示例展示:

4. in 与 hasOwnPrototype 对比
const obj = {
a: 1
};
obj.__proto__.b = 2;
console.log(obj);
console.log(obj.hasOwnProperty('a'), 1);
console.log(obj.hasOwnProperty('b'), 2);
console.log('a' in obj, 3);
console.log('b' in obj, 4);
