ブラウザ コンソールでは、入力は に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)===1
which is true===1
which isと同じです。値のみで等価性をチェックするため、結果はになります。false
1==1==1
true
1==1==1
(1==1)==1
true==1
true
===
演算子は等価性をテストするだけでなく、型の等価性もテストします。整数はブール値ではないため、true === 1
false です。
比較:
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 になります