ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript で「0」が「False」と等しいのはなぜですか?

JavaScript で「0」が「False」と等しいのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-09 03:24:02779ブラウズ

Why Does

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。