为了账号安全,请及时绑定邮箱和手机立即绑定

检查JavaScript对象中是否存在密钥?

检查JavaScript对象中是否存在密钥?

aluckdog 2019-06-12 17:11:02
检查JavaScript对象中是否存在密钥?如何检查JavaScript对象或数组中是否存在特定的键?如果一个密钥不存在,并且我试图访问它,它会返回false吗?还是犯了个错误
查看完整描述

3 回答

?
猛跑小猪

TA贡献1858条经验 获得超8个赞

检查是否存在未定义-Nness并不是测试密钥是否存在的准确方法。如果键存在但值实际上是undefined?

var obj = { key: undefined };obj["key"] != undefined // false, but the key exists!

您应该使用in操作员:

"key" in obj // true, regardless of the actual value

如果要检查密钥是否不存在,请记住使用括号:

!("key" in obj) // true if "key" doesn't exist in object!"key" in obj   // ERROR!  Equivalent to "false in obj"

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

obj.hasOwnProperty("key") // true

的方法之间的性能比较inhasOwnProperty关键是undefined,看这个基准


查看完整回答
反对 回复 2019-06-12
?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

它会回来的undefined.


var aa = {hello: "world"};

alert( aa["hello"] );      // popup box with "world"

alert( aa["goodbye"] );    // popup box with "undefined"

undefined是一个特殊的常量值。所以你可以说。

// note the three equal signs so that null won't be equal to undefinedif( aa["goodbye"] === undefined ) {
    // do something}

这可能是检查丢失钥匙的最好方法。然而,正如在下面的评论中所指出的,理论上您可能希望拥有实际的值undefined..我从来不需要这么做,我也想不出为什么我会想这么做,但为了完整起见,您可以使用in操作者

// this works even if you have {"goodbye": undefined}if( "goodbye" in aa ) {
    // do something}


查看完整回答
反对 回复 2019-06-12
  • 3 回答
  • 0 关注
  • 471 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信