猿问

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

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

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

如果一个密钥不存在,并且我试图访问它,它会返回false吗?还是犯了个错误


aluckdog
浏览 472回答 3
3回答

猛跑小猪

检查是否存在未定义-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的方法之间的性能比较in, hasOwnProperty关键是undefined,看这个基准

慕桂英4014372

它会回来的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}
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答