JavaScript: JavaScript 条件语句

最后更新:2026-10-13

条件语句让程序有了"判断力"——根据不同情况走不同的路。没有条件语句,程序只能从上到下一条道走到黑;有了它,程序才能像人一样做选择。

相关语句:if...else switch

1. if 语句

最基础的条件判断:如果条件为真,就执行花括号里的代码。

HTML
<!DOCTYPE html>
<html lang="zh">
<head><meta charset="UTF-8"><title>if语句</title></head>
<body>
<div id="output"></div>
<script>
let age = 20;
if (age >= 18) {
  document.getElementById('output').textContent = '你已成年';
}
</script>
</body>
</html>

花括号里只有一条语句时可以省略花括号,但强烈不建议——加上花括号代码更清晰,也避免后续加语句时忘记补。


二选一的情况:条件为真走 if,否则走 else。

HTML
<!DOCTYPE html>
<html lang="zh">
<head><meta charset="UTF-8"><title>if...else</title></head>
<body>
<div id="output"></div>
<script>
let score = 45;
if (score >= 60) {
  document.getElementById('output').textContent = '及格了';
} else {
  document.getElementById('output').textContent = '没及格,继续努力';
}
</script>
</body>
</html>

3. if...else if...else

多个条件依次判断,从上到下,哪个先满足就执行哪个,剩下的全部跳过:

HTML
<!DOCTYPE html>
<html lang="zh">
<head><meta charset="UTF-8"><title>if...else if</title></head>
<body>
<div id="output"></div>
<script>
let score = 85;
if (score >= 90) {
  document.getElementById('output').textContent = '优秀';
} else if (score >= 80) {
  document.getElementById('output').textContent = '良好';
} else if (score >= 60) {
  document.getElementById('output').textContent = '及格';
} else {
  document.getElementById('output').textContent = '不及格';
}
</script>
</body>
</html>

▶ 示例:根据分数判断等级

▶ 试一试

4. 三元运算符

三元运算符是 if...else 的简写形式,适合简单的二选一:

HTML
<script>
// 语法:条件 ? 值1 : 值2
let age = 20;
let status = age >= 18 ? '成年' : '未成年';

// 等价于:
let status2;
if (age >= 18) {
  status2 = '成年';
} else {
  status2 = '未成年';
}
</script>
💡 提示: 三元运算符适合赋值类的简单判断。逻辑复杂时别硬塞三元,老老实实写 if...else,可读性更重要。


5. switch 语句

当判断的是同一个变量的多个固定值时,switch 比 if...else if 更清晰:

HTML
<script>
let day = 3;
switch (day) {
  case 1: console.log('周一'); break;
  case 2: console.log('周二'); break;
  case 3: console.log('周三'); break;
  // ...
  default: console.log('无效的数字');
}
</script>

两个关键点:

  1. break 不能省——没有 break 会"穿透"到下一个 case 继续执行
  2. default 是兜底——所有 case 都不匹配时执行

▶ 示例:switch 穿透的坑

▶ 试一试
⚠️ 注意: 忘写 break 是 switch 最常见的 bug。但有时候"穿透"也能派上用场——比如多个值执行相同逻辑时,故意省略 break 让它们合并。


6. falsy 值

在条件判断中,以下值都会被视为 false(称为 falsy 值):

falsy 值 说明
false 布尔假
0 数字零
"" 或 '' 空字符串
null 空值
undefined 未定义
NaN 非数字

其余所有值都是 truthy,包括 "0"(字符串零)、[](空数组)、{}(空对象)——这些虽然"空",但在条件判断中都是 true。

▶ 示例:falsy 值判断

▶ 试一试
⚠️ 注意: 用 || 设置默认值时要注意:0 和 "" 是合法值但会被 falsy 误杀。这种情况用 ??(空值合并运算符)更安全——它只在 null 和 undefined 时才走默认值。


相关语句:if...else switch

❓ 常见问题

Q == 和 === 在条件判断中有什么区别?
A == 会做类型转换再比较("1" == 1 是 true),=== 不转换("1" === 1 是 false)。建议始终用 ===,避免隐式转换带来的意外。
Q switch 可以判断字符串吗?
A 可以。switch 不限于数字,字符串、布尔值都能判断,用的是全等比较 ===。
Q ?? 和 || 有什么区别?
A || 对所有 falsy 值生效(0、""、null、undefined、NaN、false 都走默认值),?? 只对 null 和 undefined 生效。需要保留 0 和空字符串时用 ??。

📖 小节

📝 作业

  1. 写一个程序:输入年份,判断是否是闰年(能被4整除但不能被100整除,或能被400整除)
  2. 写一个简易计算器:输入两个数字和运算符(+、-、*、/),用 switch 计算结果,除法要处理除数为0的情况
  3. 写一个 BMI 计算器:输入身高(m)和体重(kg),计算 BMI 并给出评价(偏瘦/正常/偏胖/肥胖)
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏