我有一个名为foo
的对象。我想检查它是否具有属性bar
。
我应该用这个:
if (typeof foo.bar !== "undefined")
或者这个:
if ("bar" in foo)
有什么不同吗?
答案 0 :(得分:3)
"的typeof"并不关心该属性是否存在,即使该属性存在但它的值仍为未定义,但其值为" undefined"
同时," in"如果属性存在且值为" undefined"
,则返回true例如,以下内容将返回 true 或 false ,具体取决于您使用的内容:
let person = {
name: 'John',
age: undefined
}
console.log('age' in person)
// true
console.log(typeof person.age !=="undefined")
//false
答案 1 :(得分:0)
你的问题就像"哪一个是最好的'用于检查对象中属性的存在,因此后者(MyClass1::MyClass1() : object(1000) {
}
)是您正在寻找的。 p>
"bar" in foo
的结果是"只有在有' bar' foo"这就是你要求的。
你也可以选择if("bar" in foo)
,但这样做无用了。