ブラウザ コンソールでは、入力は に1===1評価されtrueます。入力すると1===1===1に評価されfalseます。
これは、ステートメントの評価方法によるものだと思います。
1 === 1 === 1
になる
(1 === 1) === 1
に評価される
true === 1
ですfalse。
これは正しいです?そうでない場合、この動作の本当の理由は何ですか?
ブラウザ コンソールでは、入力は に1===1評価されtrueます。入力すると1===1===1に評価されfalseます。
これは、ステートメントの評価方法によるものだと思います。
1 === 1 === 1
になる
(1 === 1) === 1
に評価される
true === 1
ですfalse。
これは正しいです?そうでない場合、この動作の本当の理由は何ですか?
はい、その通りです。ここでは、演算子の優先順位が同じ 2 つの等価性チェックがあります。最初のものが最初に評価され、次にその結果が次の等値チェックに適用されます。
1===1===1ここでは、値とその型でチェックするため、(1===1)===1which is true===1which isと同じです。値のみで等価性をチェックするため、結果はになります。false1==1==1true1==1==1(1==1)==1true==1true
===演算子は等価性をテストするだけでなく、型の等価性もテストします。整数はブール値ではないため、true === 1false です。
比較:
true == 1; // true
true === 1; // false
例。
正しい行動。以来
1===1 // value is true
しかし
true===1 // it's false
これには 2 つの理由があります。
それで
1===1===1 // false
あなたが言及した動作は正しいです。
その理由===は、型と値に基づいたマッチングを意味するからです。
true === 1タイプでは一致しませんがtrue == 1、値に基づいて一致します。
1==1==1 の場合、それは true になります