これは 、非常に簡単なように見えるが、ここで私の質問、javascriptの(objの "key")の反対は何ですか?
if('name' in obj)
の反対は、それがif(!'name' in obj)
またはif("name" not in obj)
または何か他のもの何ですされているのでしょうか?
ありがとうございます!
これは 、非常に簡単なように見えるが、ここで私の質問、javascriptの(objの "key")の反対は何ですか?
if('name' in obj)
の反対は、それがif(!'name' in obj)
またはif("name" not in obj)
または何か他のもの何ですされているのでしょうか?
ありがとうございます!
ちょうど括弧でラップ:
if(!('name' in obj)){
それはこのようになります:
if (!('name' in obj)) {
// 'name' not found in obj
}
"name" in obj
はちょうどa && b || c
のように、ただブール式です。あなたは他の表現のようにそれを否定することができます:!("name" in obj)
。あなたがしたいことがあり
if (!('name' in obj))
if (Object.keys(obj).indexOf('name')<0)
は次のように、いくつかの方法があります
オブジェクト自身のプロパティをチェックif (obj.hasOwnProperty(propName))
。継承されたプロパティを含めるには、in
演算子を使用して他の答えを行います。
:
'obj.name'がfalseであれば最初のものがfalseを返すことに注意してください。* obj *が* name *というプロパティを持っていると確実には伝えません。 2つ目は継承されたプロパティ(OPが望むものではないかもしれない)を含み、3つ目はES5のサポートに依存します。 – RobG
あなたの最初のオプションはあなたの2番目のオプションと同じではありません: 'obj = {name:null}; !obj ['name'] === true; !(objの 'name')=== false'。 –
私は訂正しました – KooiInc