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

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

Patricia Arquette
リリース: 2024-11-04 19:19:02
オリジナル
1050 人が閲覧しました

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート