js中if-else语句根据条件的真假执行不同代码块,truthy值走if分支,falsy值(0、''、null、undefined、nan、false)走else分支;支持if-else if-else链式判断和嵌套结构,但嵌套不宜超3层。

JS 中 if-else 语句用于根据条件执行不同代码块,核心是布尔判断:条件为真(truthy)走 if 分支,为假(falsy)走 else 分支。
基础 if-else 写法
最简结构包含一个 if 和可选的 else:
- if (条件) { /* 条件为 true 时执行 */ }
- if (条件) { /* true 时执行 */ } else { /* false 时执行 */ }
- 条件可以是表达式(如
a > 5)、函数调用(如isValid()),或直接布尔值 - 注意:JS 中
0、''(空字符串)、null、undefined、NaN、false被视为 falsy;其余(包括'0'、[]、{})均为 truthy
多条件:if-else if-else 链
适用于多个互斥选项,按顺序逐个判断:
- 从上到下检查每个
else if的条件,遇到第一个为 true 的就执行对应代码块,后续不再判断 -
else是可选兜底分支,放在最后,不带条件 - 示例:
<script><br> const score = 85;<br> if (score >= 90) {<br> console.log('A');<br> } else if (score >= 80) {<br> console.log('B');<br> } else if (score >= 70) {<br> console.log('C');<br> } else {<br> console.log('D');<br> }<br> </script>
if-else 嵌套写法
在某个分支内部再写 if-else,适合分层判断逻辑:
- 常见于“先判大类,再细分”的场景,比如用户登录后判断权限级别再执行操作
- 嵌套层级不宜过深(建议 ≤3 层),否则可读性下降,考虑用函数拆分或 switch/查找表替代
- 注意花括号配对和缩进,避免逻辑歧义。例如:
if (user) {
if (user.isAdmin) {
deleteAllData();
} else if (user.isEditor) {
editContent();
}
} else {
showLoginPrompt();
}
简化写法与注意事项
某些场景可用更简洁方式替代,但需谨慎:
- 单行语句可省略花括号(不推荐),如
if (x) console.log('ok');—— 易出错,尤其后续加代码时 - 三元运算符
condition ? a : b仅适用于简单赋值或返回值,不可替代含多语句的 if-else - 避免在条件中直接赋值(如
if (x = 5)),应写成if (x === 5),否则可能造成意外逻辑 - 使用严格相等
===替代==,防止隐式类型转换引发 bug











