正在加载...

if 与 else

逻辑运算符给了你是/否的答案。下一个问题是:该运行哪些行? 答案为是就跑一块,为否就跑另一块。这个选择就是 if / else / else if。你已经会造 boolean;这里用它来挑路径。

if 做什么?

if 看括号里的条件。值是 truthy 时,JavaScript 立刻执行后面花括号里的块;是 falsy 就跳过该块。else 是 if 失败时的备用路径。else if 在最终 else 之前再加一道检查。

关键字一览

📊 日常 if / else 零件

关键字 日常读法 典型用途
if 若通过,就跑这块 第一道检查
else if 否则,若另一道检查通过… 中间路径
else 否则跑这个 最后兜底

条件要清楚:比较(age >= 18)、逻辑连接(age >= 18 && score >= 60),或明确的 boolean 变量。该路径要做的事写在 { … } 里。

简单 if

javascript
let age = 20;
if (age >= 18) {
console.log("adult");
}
console.log("done");

只有检查通过时 if 才跑

这里 age 是 20,所以 age >= 18 为 true,控制台先打印 adult,再打印 done。把 age 改成 16 就只剩 done——if 块被跳过了。

闭合 } 后面的那一行通常总会执行(除非你稍后离开函数)。if 不会停掉整个程序;它只决定自己的块要不要跑。

带 else 的 if

javascript
let age = 16;
if (age >= 18) {
console.log("adult");
} else {
console.log("under 18");
}

else 覆盖另一条路

这次检查失败,JavaScript 跳过第一块并执行 else。你会看到 under 18。在简单的 if / else 对里,恰好跑一条分支——不会两条都跑,也不会一条都不跑。

else if 链

javascript
let score = 75;
if (score >= 90) {
console.log("A");
} else if (score >= 60) {
console.log("pass");
} else {
console.log("retry");
}

else if 增加中间路径

score 是 75。第一道检查(>= 90)失败。第二道(>= 60)通过,所以看到 pass,最后的 else 被跳过。顺序很重要:区间重叠时,把更严的条件放前面。

若写成三个独立的 if,可能跑多个块。else if 让路径互斥——第一次匹配后链条就停。

比较与逻辑条件

javascript
let age = 20;
let score = 75;
if (age >= 18 && score >= 60) {
console.log("allowed");
} else {
console.log("blocked");
}
let ready = false;
if (!ready) {
console.log("wait");
}

括号里放真实检查

条件可以是比较、逻辑表达式,或取反后的 boolean。age >= 18 && score >= 60 为 true,所以看到 allowed。!ready 也是 true,还会看到 wait。先造出是/否,再让 if 选分支。

保存分支消息

javascript
let age = 20;
let label;
if (age >= 18) {
label = "adult";
} else {
label = "under 18";
}
console.log(label);

给分支结果起名

有时你要从选择里得到字符串(或数字),而不只是 console.log。在每个分支里给 label 赋值,之后用一次。这里 label 变成 "adult"。

在页面上显示所选路径

用 if / else 算出短消息,再写到页面上。

用 if else 做页面分支

html
<!DOCTYPE html>
<html>
<head>
<title>If else — page branch</title>
</head>
<body>
<p id="out">…</p>
<script>
let age = 20;
let msg;
if (age >= 18) {
msg = "adult";
} else {
msg = "under 18";
}
let box = document.getElementById("out");
box.textContent = "status=" + msg;
</script>
</body>
</html>

age 是 20,页面显示 status=adult。把 age 设为 16 并刷新,应看到 status=under 18。下一课(switch)是在多个固定值里选择;日常是/否门槛仍用 if / else。

自己试试

  1. 在 if (true) 里打印 "ok",确认有输出。
  2. 用 let age = 16 写 if / else,打印 "adult" 或 "under 18"。
  3. 为 score 分段建 else if 链:A(≥ 90)、pass(≥ 60),否则 retry。
  4. 在一个 if 条件里组合 age >= 18 && score >= 60。
  5. 用 if / else 存一个 label 字符串,再打印一次。
  6. 在 HTML 演示里只改 age,刷新并读新的 status= 文本。

常见错误

  • 忘记给分支体加花括号 { }
  • 写成 if (age = 18) 用单个 =(赋值)而不是比较
  • 上面没有匹配的 if 就写 else
  • 本意是互斥 else if 路径,却写了多个独立 if
  • 分段检查顺序错误(例如把 >= 60 放在 >= 90 前面)

小结

  • 条件为 truthy 时,if 执行一块代码
  • 该 if 失败时执行 else
  • else if 增加更多互斥的中间路径
  • 条件通常是比较或逻辑表达式
  • 每个分支放进花括号;需要稍后用结果就存标签
  • 下一课:switch——在多个固定值中选择

🧠 测试您的知识

准备开始

测试您的知识

通过这个互动测验挑战自己,看看你对这个主题的理解程度如何

❓
8
问题
🎯
70%
及格要求
♾️
∞
时间
🔄
∞
尝试次数

📝 说明

  • 仔细阅读每个问题
  • 为每个问题选择最佳答案
  • 您可以随时重新参加测验
  • 您的进度将显示在顶部