JavaScriptは数値の比較において強力な機能を提供し、動的で応答性の高いアプリケーション構築において極めて重要です。このガイドでは、数値の値を効果的に比較するための基本的な手法を探ります。
目次
比較演算子
JavaScriptは数値の関係を評価するための6つの主要な比較演算子を提供します。これらの演算子はブール値(true
またはfalse
)を返します。
演算子 | 説明 | 例 | 結果 |
---|---|---|---|
=== |
厳密等価(値と型を両方チェック) | 5 === 5 |
true |
!== |
厳密不等価 | 5 !== "5" |
true |
> |
より大きい | 10 > 5 |
true |
< |
より小さい | 5 < 10 |
true |
>= |
以上 | 10 >= 10 |
true |
<= |
以下 | 5 <= 10 |
true |
なぜ厳密等価(===
)を使うのか? 予期せぬ型の強制変換を防ぐために、一般的に厳密等価の使用が推奨されます。緩い等価演算子(==
)は比較の前に型変換を行うため、エラーにつながる可能性があります。
5 == "5"; // true(型の強制変換が発生)
5 === "5"; // false(厳密等価;型が異なる)
論理演算子
論理演算子は複数の比較を組み合わせて、複雑な条件文を作成します。
演算子 | 説明 | 例 | 結果(num1 = 10、num2 = 5の場合) |
---|---|---|---|
&& |
論理積(両方の条件がtrueである必要がある) | (num1 > 5) && (num2 < 10) |
true |
|| |
論理和(少なくとも1つの条件がtrueである必要がある) | (num1 0) |
true |
! |
論理否定(ブール値を反転する) | !(num1 === num2) |
true |
let score = 85;
if (score >= 90 && score = 80 && score < 90) {
console.log("B評価");
} else {
console.log("B評価未満");
}
比較の連鎖
よりクリーンなコードのために、数値が範囲内にあるかどうかをチェックする際には比較を連鎖させます。
let age = 25;
if (18 <= age && age < 65) {
console.log("成人");
}
特殊なケースの処理(NaN、Infinity)
NaN
(Not a Number)とInfinity
は特別な考慮が必要です。
NaN
は自分自身と決して等しくありません:NaN === NaN
はfalse
です。NaN
をチェックするにはisNaN()
を使用します。Infinity
と-Infinity
は特定の比較動作を持ちます。
isNaN(Number("hello")); // true
Infinity > 1000; // true
-Infinity < -1000; // true
結論
JavaScriptにおける数値の比較を習得することは、堅牢なアプリケーションを構築するために不可欠です。比較演算子と論理演算子を効果的に使用し、特殊なケースを理解することで、非常に機能的で信頼性の高いコードを作成できます。