Kodokon kodokon.com

循环:for、while、for...of

借助 for、while 和 for...of 循环,重复执行指令而无需重复编写代码。

7 分钟 · 3 题

在 Kodokon 中打开本课

想象一下要为 100 位用户显示欢迎消息:把同一行代码复制 100 次既繁琐又容易出错。循环是一种把一段指令重复执行多次的结构。JavaScript 提供了好几种循环;我们先从最著名的开始:for 循环。

JAVASCRIPT
for (let i = 1; i <= 3; i++) {
  console.log("Round number " + i);
}
// Prints: Round number 1
// Prints: Round number 2
// Prints: Round number 3
一个运行三次的 for 循环

for (let i = 1; i <= 3; i++) 这一行分为三部分,用分号隔开:起始let i = 1 创建一个名为 i、初始值为 1 的计数器)、条件i <= 3:只要它为真,循环就继续)以及步进i++ 在每一轮之后给 i 加 1)。一旦条件变为假,循环就会停止。

while 循环更简单:只要它的条件为真,就重复执行它的代码块。当你事先不知道要重复多少次时,就使用它。

JAVASCRIPT
let batteryLevel = 3;

while (batteryLevel > 0) {
  console.log("Battery: " + batteryLevel);
  batteryLevel = batteryLevel - 1;
}
console.log("Battery empty!");
只要 batteryLevel 大于 0,循环就会运行

最后,for...of 循环会直接遍历一个集合的各个值,比如数组(一个值的列表,你将在第 5 课中详细学习)。每一轮,变量都会接收到下一个值:无需管理计数器。

JAVASCRIPT
const fruits = ["apple", "banana", "cherry"];

for (const fruit of fruits) {
  console.log(fruit);
}
// Prints: apple, then banana, then cherry
for...of 遍历数组中的每一个值

知识检测

确认你已牢记本课的重点内容。

  1. for (let i = 0; i < 3; i++) 的代码块会运行多少次?
    • 2 次
    • 3 次
    • 4 次
  2. 哪种循环无需计数器就能直接遍历数组的各个值?
    • for...of
    • while
    • if
  3. 如果一个 while 循环的条件永远不会变为假,会发生什么?
    • 循环在 1000 轮后停止
    • JavaScript 跳过这个循环
    • 循环永远运行,程序卡死