ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript の「if」ステートメントでは「0」が比較では False として機能するのはなぜですか?

JavaScript の「if」ステートメントでは「0」が比較では False として機能するのはなぜですか?

DDD
リリース: 2024-11-04 22:08:02
オリジナル
458 人が閲覧しました

Why Does

JavaScript のパラドックスを解く: なぜ「0」は比較では False であるのに、If ステートメントでは False になるのか

JavaScript では、プリミティブ " の動作0」は開発者にパズルを投げかけます。 「==」などの論理演算子は「0」を false と同等にしますが、「if」条件では「0」は真として動作します。

比較のパラドックス

コード以下は比較のパラドックスを示しています:

<code class="js">"0" == false // true
false == "0" // true</code>
ログイン後にコピー

このシナリオでは、JavaScript はその "truthy" と "falsy" の値に基づいて "0" を false に強制します。 「0」、「NaN」、「null」、未定義のような値は偽とみなされますが、その他の値は真実とみなされます。

If ステートメントの異常

ただし、状況は「if」ステートメントで「0」が使用されると不可解になります:

<code class="js">if ("0") console.log("ha") // ha</code>
ログイン後にコピー

比較では false に強制されるにもかかわらず、「if」条件では「0」は true と評価されます。これは、JavaScript の "if" ステートメントが、"0" を含むすべての空でない文字列を真実であると扱うためです。

真偽テーブル

この動作を理解するには、次のようにします。 JavaScript の真理性テーブルを参照できます。これらは、比較 (==) および「if」ステートメント (真実) 条件における真/偽ステータスに基づいて値を分類します。

Value Comparison If Statement
True/Truthy true true
False/Falsy false false
"0" (Falsy) false true

結論

パラドックスJavaScript における「0」の違いは、比較 (==) および「if」ステートメント (真実) における真実性の異なる解釈から生じます。これは微妙ですが重要な違いであり、予期しない結果を避けるために開発者が認識しておく必要があります。ベスト プラクティスとして、正確な評価を保証するために、比較中に厳密な等価 (===) を使用することをお勧めします。

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

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