3

以下は JavaScript の比較です。

2 == true //false

false を返す理由は、比較によってデータ型に変換trueされ、結果が 1 になるためだと言われています。Number

console.info(Number(true)) // 1

2私の混乱は、比較が数値をBooleanデータ型に変換しない理由です

console.info(Boolean(2)) // true

2 == true結果はtrue

4

2 に答える 2

0

== は比較のために暗黙的な変換を行います。この場合2は数値でtrueブール値です。変換ルールは「数値をブール値と比較している間、ブール値は数値に変換されます」であるため

true は 1 に変換されます

2 == 1 は false になります。

//similarly, 
2 == false; //false

false は 0 に変換され、2 も 0 に等しくならないためです。

ただし、1 == true。true が 1 および 1==1 に変換されるのと同じ理由で

于 2014-06-21T16:46:24.687 に答える