1. ホーム
  2. javascript

[解決済み] なぜJavaScriptでは!{}[true]がtrueに評価されるのですか?

2022-07-05 09:24:39

質問

{}[true][true] であり ![true]false .

では、なぜ !{}[true] と評価されるのでしょうか? true ?

どのように解決するのですか?

それは、プレーンな {}[true] が空のステートメントブロック (オブジェクトリテラルではない) としてパースされ、その後に配列として true を含む配列が続きます。 true .

一方 ! 演算子を適用すると、パーサは {} をオブジェクト リテラルとして解釈するため、次のように {}[true] を返すメンバーアクセスになります。 undefined となり !{}[true] は確かに true (として !undefinedtrue ).