① 第一种使用 in 操作符号:
格式:(变量 in 对象)
const person = {
"name": "小黑",
"age": 18
};
console.log("name" in person); // true
console.log("gender" in person); // false
② 第二种使用 hasOwnProperty 方法
此方法用于检测一个对象是否含有特定的自身属性,返回一个布尔值(也就是,是否有指定的键)
console.log(person.hasOwnProperty("age")); // true
console.log(person.hasOwnProperty("gender")); // false
③ 第三种 ES2022新特性:Object.hasOwn( )
Object.hasOwn()
方法是ES2022
新提出的,用于替代Object.prototype.hasOwnProperty()
的方法
console.log(Object.hasOwn(person,"name")); //true
console.log(Object.hasOwn(person,"age")); //true
console.log(Object.hasOwn(person,"gender")); //false
④ 第四种使用括号符号obj["prop"]。如果属性存在,它将返回该属性的值,否则将返回undefined
console.log(person["name"]); // 小黑
console.log(person["gender"]); // undefined
⑤ 第五种 Reflect.has( )方法 相当于 in 操作符
用法: Reflect.has(target, propertyKey)
target:此参数是目标对象,它将查找属性
propertyKey:此参数是要检查的属性的名称
返回值:此方法返回一个布尔值,该值指示目标是否具有该属性
console.log(Reflect.has(person,'name')); //true
console.log(Reflect.has(person,'gender')); //false