「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > if ステートメントでは「0」が True と評価されるのに、比較では False と評価されるのはなぜですか?

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

2024 年 11 月 7 日に公開
ブラウズ:437

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 の真偽の動作を簡潔に表現するには、添付の表を参照してください。真の等価比較を行うには、常に ===.

を選択することを忘れないでください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3