检查一个键是否存在于JavaScript对象中?

发布时间 2023-10-19 20:34:51作者: 小满独家

内容来自 DOC https://q.houxu6.top/?s=检查一个键是否存在于JavaScript对象中?

如何在JavaScript对象或数组中检查特定键是否存在?

如果键不存在,尝试访问它时,会返回false还是抛出错误?


检查一个键是否存在不是测试键是否存在的准确方法。如果键存在,但值实际上是undefined怎么办?

var obj = { key: undefined };
console.log(obj["key"] !== undefined); // false,但键存在!

你应该改用 in 运算符:

var obj = { key: undefined };
console.log("key" in obj); // true,无论实际值是什么

如果你想检查一个键是否不存在,请记住使用括号:

var obj = { not\_key: undefined };
console.log(!("key" in obj)); // 如果对象中不存在 "key",则为 true
console.log(!"key" in obj);   // 不要这样做!它等同于 "false in obj"

或者,如果你想特别测试对象实例的属性(而不是继承的属性),请使用 hasOwnProperty

var obj = { key: undefined };
console.log(obj.hasOwnProperty("key")); // true

有关 inhasOwnProperty 和键为 undefined 之间性能比较的方法,请参见此 基准测试

Benchmark results