javascript中的“key”的对立面是什么?

javascript中的“key”的对立面是什么?,javascript,syntax,Javascript,Syntax,这可能看起来很容易, 但我的问题是,什么是相反的 if('name' in obj) 是if(!'name'在obj中)还是if(“name”不在obj中)还是其他什么 谢谢 只需将其包装在括号中: if( !( 'name' in obj ) ){ 是这样的: if (!('name' in obj)) { // 'name' not found in obj } “name”在obj中只是一个布尔表达式,就像a&b|c一样。您可以像任何其他表达式一样对其求反:!(“obj中的名

这可能看起来很容易, 但我的问题是,什么是相反的

if('name' in obj)
if(!'name'在obj中)
还是
if(“name”不在obj中)
还是其他什么


谢谢

只需将其包装在括号中:

if( !( 'name' in obj ) ){
是这样的:

if (!('name' in obj)) {
    // 'name' not found in obj
}

“name”在obj
中只是一个布尔表达式,就像
a&b|c
一样。您可以像任何其他表达式一样对其求反:
!(“obj中的名称)

有几种方法,如:

if (!('name' in obj))
if (Object.keys(obj).indexOf('name')<0)
if(!('name'在obj中))
如果(Object.keys(obj).indexOf('name')您可能需要:

if (obj.hasOwnProperty(propName)) 

检查对象本身的属性。要包含继承属性,使用
操作符中的
的其他答案也可以。

值得注意的是,如果
obj.name
为false,则第一个答案将返回false,因此无法可靠地告诉您obj是否有名为name的属性。第二个答案将包含继承属性(这可能不是OP想要的),第三个取决于对ES5的支持。第一个选项与第二个选项不同:
obj={name:null};!obj['name']==true;!('name'在obj中===false