javascript条件判断核心是用比较运算符生成布尔值,推荐优先使用===和!==避免隐式转换;注意null==undefined为true但===为false、nan不等于自身、对象比较的是引用而非内容。

JavaScript 中利用比较运算符进行条件判断,核心是用 ==、===、!=、!==、>、、<code>>=、 等运算符生成布尔值(<code>true 或 false),再将其用于 if、else if、else、三元运算符或循环条件中。
注意相等判断的两种方式:== 与 ===
==(抽象相等)会先尝试类型转换再比较,容易引发意外结果;===(严格相等)要求值和类型都相同,更安全可靠。
-
5 == "5"→ true(字符串 "5" 被转为数字 5) -
5 === "5"→ false(类型不同:number vs string) - 日常开发推荐优先使用
===和!==,避免隐式转换带来的 bug
常见比较场景与写法示例
实际判断常结合变量、用户输入、API 返回值等动态数据:
- 判断年龄是否成年:
if (age >= 18) { ... } - 检查用户名是否为空:
if (username !== "") { ... } - 比较两个数字大小:
if (a > b) { console.log("a 更大"); } - 判断状态是否为有效值:
if (status === "success" || status === "pending") { ... }
在条件语句和三元运算符中直接使用
比较表达式本身返回布尔值,可自然嵌入控制流:
if (score >= 90) { grade = "A"; } else if (score >= 80) { grade = "B"; } else { grade = "C"; }- 简写赋值:
const isLogin = userInfo !== null && userInfo.id > 0; - 三元运算:
const message = count > 0 ? "有新消息" : "暂无消息";
容易忽略的细节
有些比较行为不符合直觉,需特别留意:
-
null == undefined是 true,但null === undefined是 false -
NaN == NaN为 false(唯一不等于自身的值),应使用isNaN()或Number.isNaN()判断 - 对象、数组用
==或===比较的是引用地址,不是内容;如需深比较,需手动遍历或借助工具函数 - 字符串比较按 Unicode 编码顺序,
"2" > "10"结果为 true(因为先比首字符 "2" > "1")
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











