2

Javascript では、次のコードは次のように機能します。

> var foo = { bar: 1 }
undefined
> foo
{ bar: 1 }
> 'bar' in foo
true
> !'bar' in foo
false
> 'baz' in foo
false
> !'baz' in foo
false

オブジェクトにプロパティが含まれていないかどうかを確認するときに、 using!innot が返されるのはなぜですか?true

4

2 に答える 2

9

を行う必要があります。それ以外の場合は(これは を検索します)!('baz' in foo)と同じです。理由は演算子の優先順位です。(!'baz') in foo'false' in foo

!'foo' in {false: true} //as in 'false' in {false: true}
//true

!('foo' in {false: true}) //as in, does a key "foo" not exist in the object
//true
于 2012-08-19T17:09:46.143 に答える
4

!の結果に対して を使用する必要がありますin

!("key" in object)

現在はこんな感じです。

(!"key") in object

そして、それは行うことと同じです

false in object

になる

"false" in object
于 2012-08-19T17:10:07.177 に答える