三元运算符是JavaScript中简化单行if-else的常用方式,语法为“条件 ? 表达式1 : 表达式2”,适用于有返回值的简单分支场景,但不适用于多语句、控制流或含副作用的操作。

三元运算符是 JavaScript 中简化单行 if-else 的最常用方式,写法简洁,适合赋值或返回值场景。
基本语法:条件 ? 表达式1 : 表达式2
它等价于一个只有两个分支的 if-else 语句:
- 条件为真时,整个表达式结果为“表达式1”
- 条件为假时,整个表达式结果为“表达式2”
例如:const status = score >= 60 ? '及格' : '不及格';
比写成:
let status;<br>if (score >= 60) {<br> status = '及格';<br>} else {<br> status = '不及格';<br>}
更紧凑,也更适合用于函数返回、JSX 渲染等位置。
嵌套三元运算符要谨慎使用
多个条件可用嵌套实现,但可读性会下降:
立即学习“Java免费学习笔记(深入)”;
你接手一个需求时,是不是经常这样:"改一个小字段 → 结果把不相关的代码也改了"、"需求说得很模糊 → 做着做着发现跑偏了"、"数据库加个字段 → 上线才发现漏了数据兼容"、"做了个新功能 → 一个月后自己都忘了当时怎么设计的"、"写到一半被中断 → 再回来不知道从哪继续";这个 Skill 就是专门解决这些问题的。 它会自动探测你的项目环境(JDK、Spring Boot、ORM、数据库、前端框架),记在
const grade = score >= 90 ? 'A' : score >= 80 ? 'B' : score >= 70 ? 'C' : 'D';
这种写法虽合法,但建议超过两个分支时改用 if-else if-else 或 switch,避免逻辑混乱。
三元运算符不能替代所有 if-else
它只适用于“有返回值”的简单分支。以下情况不适合用三元:
- 分支中需要执行多条语句(如调用多个函数、修改多个变量)
- 分支中包含
return、throw、break等控制流语句 - 条件逻辑复杂,或涉及副作用(如发起请求、操作 DOM)
比如这段代码无法直接转成三元:
if (user) {<br> console.log('欢迎回来');<br> updateLastLogin();<br> showDashboard();<br>} else {<br> redirectToLogin();<br>}
与逻辑运算符配合提升表达力
有时可结合 && 和 || 进一步简化:
-
user && user.name相当于user ? user.name : undefined -
user?.name ?? '匿名用户'(可选链 + 空值合并)更安全地处理 null/undefined
但注意:逻辑运算符返回的是操作数本身,不是布尔值;三元则严格按条件返回指定表达式结果,语义更明确。

















