JavaScript の等価性を理解する: "0" と "False" の謎
JavaScript では、等価演算子 (==) がキャストされます。比較する前にオペランドを共通の型に設定すると、予期しない結果が生じる可能性があります。 == を使用して false で "0" をテストするときに、1 つの不可解な難問が生じます。
次のコードを考えてみましょう:
"0" == false // true false == "0" // true
これらの式は true と評価され、「0」が false と同等であることを意味します。 。ただし、これは、「ha」を出力する if("0") の動作と矛盾します:
if("0") console.log("ha") // prints "ha"
この謎を解明するには、「真実」と「偽」の値の概念を詳しく調べる必要があります。 JavaScriptで。 == 演算子は、「0」をブール値に強制しますが、これは false です。ただし、if ステートメントは空ではない文字列を真の値として解釈します。
これらの不一致を回避するには、等価性をテストするときに厳密な等価演算子 (===) を使用することが重要です。 === は、型強制を行わずに値を直接比較します。
"0" === false // false
以下の表は、JavaScript における真の値と偽の値を示しています。
Value | Truthy | Falsey |
---|---|---|
0 | Falsey | True |
"0" | Truthy | False |
"" | Falsey | True |
== は次のような結果を引き起こす可能性があることに注意してください。異なる型の値を比較すると予期しない結果が生じる可能性があります。正確かつ明確な比較を行うには、常に === を選択してください。
以上がJavaScript で「0」が「False」と等しいのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。