JavaScript 提供了强大的数字比较功能,这是构建动态响应式应用程序的关键方面。本指南探讨了有效比较数值的基本技术。
目录
比较运算符
JavaScript 提供六个主要的比较运算符来评估数值关系。这些运算符返回布尔值(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) |
---|---|---|---|
&& |
逻辑与 (两个条件都必须为真) | (num1 > 5) && (num2 < 10) |
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
(非数字)和Infinity
需要特殊考虑:
NaN
从不等于自身:NaN === NaN
为false
。使用isNaN()
检查NaN
。Infinity
和-Infinity
具有特定的比较行为。
isNaN(Number("hello")); // true
Infinity > 1000; // true
-Infinity < -1000; // true
结论
掌握 JavaScript 中的数值比较对于构建健壮的应用程序至关重要。通过有效地使用比较和逻辑运算符,并理解特殊情况,您可以创建高度功能化和可靠的代码。