ホームページ >ウェブフロントエンド >jsチュートリアル >if ステートメントでは「0」が True と評価されるのに、比較では False と評価されるのはなぜですか?

if ステートメントでは「0」が True と評価されるのに、比較では False と評価されるのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-05 10:47:01377ブラウズ

Why Does

JavaScript の特徴を理解する: if ステートメントで "0" は False であるのに False ではない理由

JavaScript では、論理コンテキストでの値の評価 (例: if ステートメントまたはブール比較では、予期しない結果が生じる可能性があります。この動作は、JavaScript の型強制メカニズムによるものです。

JavaScript は値の型を緩く設定しており、文字列または数値が論理コンテキストで使用される場合、型強制を受けてブール値に変換されます。この変換では、空でない文字列とゼロ以外の数値は true と評価され、空の文字列とゼロの数値は false と評価されます。

したがって、== または === を使用して "0" と false を比較すると、の場合、型強制は "0" (空ではない文字列) と false (ゼロに似た値) の両方を true に変換するため、true を返します。

ただし、if ステートメントを使用する場合、"0" のみが評価されます。真実に。これは、if ステートメントが内部で強制されたブール値を使用し、空でない文字列に対して true を返すためです。

曖昧さを避けるため、プリミティブ値を比較するときは、厳密な等価演算子 === を使用することをお勧めします。型強制を行わずに比較を実行します。これにより、必要に応じて「0」が false として正しく評価されるようになります。

さまざまなデータ型に対する JavaScript の真偽の動作を簡潔に表現するには、添付の表を参照してください。真の等価比較を行うには、常に === を選択することを忘れないでください。

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

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