37

JavaScript の型強制等値演算子が推移的でない場合が多くあります。たとえば、「JavaScript の等価推移性は変だ」を参照してください。

しかし、対称==でない場合はありますか? つまり、どこにあり、どこにあるのですか?a == btrueb == afalse

4

3 に答える 3

37

対称になっているはずです。ただし、IEの一部のバージョンには非対称のケースがあります。

window == document; // true
document == window; // false
于 2011-04-14T20:52:22.900 に答える
30

Javascript では、==常に対称です。

仕様には次のように書かれています:

注 2 等値演算子は、次の不変条件を維持します。

  • A != Bと同等!(A == B)です。
  • A == BB == Aの評価順序を除いて、 と同等ですA and B
于 2011-04-14T20:48:25.243 に答える
11

あなたの実際の質問(演算子は対称ですか)に対する答えはイエスです。ECMA-262仕様では、次のように明示的に述べています。

注 2 等値演算子は、次の不変条件を維持します。

  • A != Bと同等!(A == B)です。
  • A == BB == Aとの評価順序を除いて、Aと同等Bです。
于 2011-04-14T20:50:14.677 に答える