0Pricing
JavaScript Academy · 课时

提前返回与守卫子句

使用提前返回和守卫子句简化条件、减少嵌套,并让正常路径更加清晰。

提前返回与守卫子句 是 CoddyKit 上的免费 JavaScript Academy 课时。 这是第 3 节课,共 3 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 JavaScript Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 JavaScript Academy 课程共包含 3 节课。

简介

目标:通过对无效输入提前返回来编写更清晰的函数,让正常路径保持简短。

  • 提前返回
  • 守卫子句
  • 减少嵌套
提前返回与守卫子句 — 插图 1

不使用守卫子句

嵌套会将主要工作放进 if 中,代码可能越来越难以阅读。

// Nested style without guard
function welcome(name) {
  if (name) {
    const message = "Hello, " + name + "!";
    console.log(message);
  } else {
    console.log("Name required");
  }
}

welcome("Ayla");
welcome("");
提前返回与守卫子句 — 插图 2

重构为守卫子句

先处理无效输入,然后用更少的缩进编写正常路径。

// Guard clause: return early for bad input
function welcomeSafe(name) {
  if (!name) {
    console.log("Name required");
    return;
  }
  const message = "Hello, " + name + "!";
  console.log(message);
}

welcomeSafe("Ayla");
welcomeSafe("");
提前返回与守卫子句 — 插图 3

多个守卫子句

每条规则使用一个小型守卫子句。每次提前返回都能避免深层嵌套。

// Multiple guard clauses keep each rule small
function divide(a, b) {
  if (typeof a !== "number" || typeof b !== "number") {
    console.log("Numbers only");
    return;
  }
  if (b === 0) {
    console.log("Cannot divide by zero");
    return;
  }
  const result = a / b;
  console.log("Result:", result);
}

divide(6, 3);
divide(6, 0);
divide("6", 3);
提前返回与守卫子句 — 插图 4

使用返回语句减少嵌套

失败情况提前返回;最后一行清晰地返回成功结果。

// Early returns reduce else blocks
function canVote(age) {
  if (typeof age !== "number") {
    return false;
  }
  if (age < 18) {
    return false;
  }
  return true;
}

console.log(canVote(20));
console.log(canVote(15));
console.log(canVote("20"));
提前返回与守卫子句 — 插图 5

守卫子句提示

检查清单:

  • 先验证输入。
  • 遇到错误或边界情况时提前返回。
  • 让每个守卫子句保持简短且明确。
  • 最后以扁平的结构编写正常路径。
提前返回与守卫子句 — 插图 6

守卫子句小测

快速检查:什么是守卫子句?

提前返回与守卫子句 — 插图 7

总结

总结:使用守卫子句先处理错误输入,提前返回,让主要逻辑保持扁平且易读。

提前返回与守卫子句 — 插图 8

常见问题解答

「提前返回与守卫子句」课时是免费的吗?

是的 — 「提前返回与守卫子句」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 JavaScript Academy 课程的其余内容,请升级到 CoddyKit PRO。 JavaScript Academy 课程共包含 3 节课。

「提前返回与守卫子句」这节课中我会学到什么?

使用提前返回和守卫子句简化条件、减少嵌套,并让正常路径更加清晰。 你通过在浏览器中直接运行的动手代码来练习 JavaScript Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 JavaScript Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 JavaScript Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 3 节。

「提前返回与守卫子句」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 JavaScript Academy 课中编写并运行代码吗?

能。每节 JavaScript Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. if/else 与 switch——核心模式
  2. 循环:for、while、do…while、for…of 与 for…in
  3. 提前返回与守卫子句
← 返回 JavaScript Academy