34

ブラウザ コンソールでは、入力は に1===1評価されtrueます。入力すると1===1===1に評価されfalseます。

これは、ステートメントの評価方法によるものだと思います。

1 === 1 === 1

になる

(1 === 1) === 1

に評価される

true === 1

ですfalse

これは正しいです?そうでない場合、この動作の本当の理由は何ですか?

4

5 に答える 5

42

はい、その通りです。ここでは、演算子の優先順位が同じ 2 つの等価性チェックがあります。最初のものが最初に評価され、次にその結果が次の等値チェックに適用されます。

1===1===1ここでは、値とその型でチェックするため、(1===1)===1which is true===1which isと同じです。値のみで等価性をチェックするため、結果はになります。false1==1==1true1==1==1(1==1)==1true==1true

于 2013-11-13T13:53:51.367 に答える
20

===演算子は等価性をテストするだけでなく、型の等価性もテストします。整数はブール値ではないため、true === 1false です。

比較:

true == 1; // true
true === 1; // false

于 2013-11-13T13:55:41.640 に答える
3

正しい行動。以来

1===1 // value is true

しかし

true===1 // it's false

これには 2 つの理由があります。

  1. true はブール型で、1 は整数です
  2. 単純に、1 は true ではありません。

それで

1===1===1 // false
于 2013-11-13T14:09:34.020 に答える
2

あなたが言及した動作は正しいです。

その理由===は、型と値に基づいたマッチングを意味するからです。 true === 1タイプでは一致しませんがtrue == 1、値に基づいて一致します。

于 2013-11-13T13:57:11.083 に答える
-2

1==1==1 の場合、それは true になります

于 2013-11-15T02:53:43.800 に答える