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

内容来自 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 之间性能比较的方法,请参见此 基准测试

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值