ホームページ >ウェブフロントエンド >jsチュートリアル >「0」は false に等しいのに、JavaScript の if でテストすると True になるのはなぜですか?

「0」は false に等しいのに、JavaScript の if でテストすると True になるのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-04 19:19:021031ブラウズ

Why Does

JavaScript 等価パズル: "0" は偽ですが、if でテストすると真です

JavaScript の等価演算子は予期しない結果を引き起こす可能性があります。次のコードで示されるように:

console.log("0" == false); // true
console.log(false == "0"); // true

このコードは、文字列「0」がブール値 false と同等であることを意味します。ただし、次のコードは、条件が "0" であるにもかかわらず、"ha" を出力します:

if ("0") console.log("ha"); // ha

なぜこれが起こっているのですか?

この動作を理解するには、次のことが必要です。 JavaScript の真の値と偽の値を理解するため。 JavaScript では、次の値は false です:

false
0
""
null
undefined
NaN

他のすべての値は true。

コード スニペットの最初の 2 行では、等価演算子 (==) が型強制を実行します。文字列「0」をブール値 false と比較します。 「0」は偽の値であるため、false と等しいとみなされます。

ただし、コードの 3 行目の if ステートメントでは、同じ型の値のみを考慮する厳密な等価性 (===) が使用されています。平等として。 「0」は文字列であり、false はブール値であるため、条件は false として評価されます。

混乱を避けるために、JavaScript で値を比較するときは厳密な等価 (===) を使用することをお勧めします。次の変更されたコードは、「何も」を出力します:

if ("0" === false) console.log("ha"); // nothing

等価 (==) と厳密等価 (===) の違いを理解することで、値を正確に比較する JavaScript コードを作成できます。

以上が「0」は false に等しいのに、JavaScript の if でテストすると True になるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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