JavaScript For 循环
循环可以多次执行一段代码。
JavaScript 循环
如果您想一遍又一遍地运行相同的代码,每次使用不同的值,循环就非常方便。
当处理数组时,这通常是这种情况
不必编写
text += cars[0] + "<br>";
text += cars[1] + "<br>";
text += cars[2] + "<br>";
text += cars[3] + "<br>";
text += cars[4] + "<br>";
text += cars[5] + "<br>";
您可以这样写
for (let i = 0; i < cars.length; i++) {
text += cars[i] + "<br>";
}
自己动手试一试 »
不同类型的循环
JavaScript 支持不同类型的循环
for
- 循环代码块多次for/in
- 循环遍历对象的属性for/of
- 循环遍历可迭代对象的值while
- 当特定条件为真时循环代码块do/while
- 当特定条件为真时也循环代码块
For 循环
for
语句创建了一个带有 3 个可选表达式的循环
for (expression 1; expression 2; expression 3) {
// 要执行的代码块
}
Expression 1 在代码块执行前(执行一次)执行。
Expression 2 定义了执行代码块的条件。
Expression 3 在代码块执行后(每次)执行。
从上面的例子中,您可以读出
Expression 1 在循环开始前设置一个变量(let i = 0)。
Expression 2 定义了循环运行的条件(i 必须小于 5)。
Expression 3 每次循环代码块执行后都会增加一个值(i++)。
Expression 1
通常,您会在 Expression 1 中初始化循环中使用的变量(let i = 0)。
这并不总是成立的。JavaScript 不在乎。Expression 1 是可选的。
您可以在 Expression 1 中初始化多个值(用逗号分隔)
示例
for (let i = 0, len = cars.length, text = ""; i < len; i++) {
text += cars[i] + "<br>";
}
自己动手试一试 »
您也可以省略 Expression 1(例如,当您的值在循环开始前设置好时)
示例
let i = 2;
let len = cars.length;
let text = "";
for (; i < len; i++) {
text += cars[i] + "<br>";
}
自己动手试一试 »
Expression 2
通常,Expression 2 用于评估初始变量的条件。
这并不总是成立的。JavaScript 不在乎。Expression 2 也是可选的。
如果 Expression 2 返回 true,循环将重新开始。如果它返回 false,循环将结束。
如果您省略 Expression 2,则必须在循环内部提供一个 break。否则循环将永远不会结束。这会使您的浏览器崩溃。请参阅本教程的后续章节,了解 break 的内容。
Expression 3
通常,Expression 3 会递增初始变量的值。
这并不总是成立的。JavaScript 不在乎。Expression 3 是可选的。
Expression 3 可以做任何事情,例如负增量(i--)、正增量(i = i + 15)或任何其他操作。
Expression 3 也可以被省略(例如,当您在循环内部递增值时)
示例
let i = 0;
let len = cars.length;
let text = "";
for (; i < len; ) {
text += cars[i] + "<br>";
i++;
}
自己动手试一试 »
循环作用域
在循环中使用 var
使用 let
在循环中
在第一个例子中,使用 var
,在循环中声明的变量会重新声明循环外的变量。
在第二个例子中,使用 let
,在循环中声明的变量不会重新声明循环外的变量。
当 let
用于在循环中声明 i 变量时,i 变量仅在循环内可见。
For/Of 和 For/In 循环
for/in
循环和 for/of
循环将在下一章中解释。
While 循环
while
循环和 do/while
循环将在接下来的章节中解释。