二维码

JavaScript For 循环

JavaScript For 循环


循环可以多次执行代码块。


JavaScript 循环

循环很方便,如果你想一遍又一遍地运行相同的代码,每个 具有不同值的时间。

使用数组时通常会出现这种情况:

:而不是写
1
2
3
4
5
6
text += cars[0] + "<br>";  
text += cars[1] + "<br>";
text += cars[2] + "<br>";
text += cars[3] + "<br>";
text += cars[4] + "<br>";
text += cars[5] + "<br>";
:你可以写
1
2
3
for (let i = 0; i < cars.length; i++) {  
  text += cars[i] + "<br>";
}


不同种类的循环

JavaScript 支持不同类型的循环:

  • for- 多次循环访问代码块
  • for/in- 遍历对象的属性
  • for/of- 遍历 可迭代对象
  • while- 当指定条件为真时循环访问代码块
  • do/while- 当指定条件为真时,也会遍历代码块

For 循环

for语句创建一个包含 3 个可选表达式的循环:

1
2
3
for (expression 1; expression 2; expression 3) {  
  // code block to be executed
}

表达式 1 在代码块执行之前执行(一次)。

表达式 2 定义执行代码块的条件。

表达式 3 在执行代码块后(每次)执行。

1
2
3
4
for (let i = 0; i < 5; i++) {  
  text += "The number is " + i + "<br>";
}

从上面的例子中,你可以读到:

表达式 1 在循环开始之前设置一个变量 (let i = 0)。

表达式 2 定义循环运行的条件(i 必须小于 5).

表达式 3 每当循环中的代码块具有 被处决。


表达式 1

通常,您将使用表达式 1 来初始化循环中使用的变量 (let i = 0)。

但情况并非总是如此。JavaScript 不在乎。表达式 1 是 自选。

您可以在表达式 1 中启动多个值(用逗号分隔):

1
2
3
4
for (let i = 0, len = cars.length, text = ""; i < len; i++) {  
  text += cars[i] + "<br>";
}

您可以省略表达式 1(例如设置值时 在循环开始之前):

1
2
3
4
5
6
7
let i = 2;  
let len = cars.length;
let text = "";
for (; i < len; i++) {
  text += cars[i] + "<br>";
}

表达式 2

表达式 2 通常用于计算初始变量的条件。

但情况并非总是如此。JavaScript 不在乎。表达式 2 是 也是可选的。

如果表达式 2 返回 true,则循环将重新开始。如果返回 false,则 循环将结束。

如果省略表达式 2,则必须在 圈。否则,循环将永无止境。这将使您的浏览器崩溃。 在本教程后面的章节中阅读有关休息的信息。


表达式 3

通常,表达式 3 递增初始变量的值。

但情况并非总是如此。JavaScript 不在乎。表达式 3 是 自选。

表达式 3 可以执行任何操作,例如负增量 (i–)、正增量 增量 (i = i + 15),或其他任何值。

表达式 3 也可以省略(例如在循环中递增值时):

1
2
3
4
5
6
7
8
let i = 0;  
let len = cars.length;
let text = "";
for (; i < len; ) {
  text += cars[i] + "<br>";
  i++;
}


循环范围

循环使用:var

1
2
3
4
5
6
7
8
var i = 5;  

for (var i = 0; i < 10; i++) {
  // some code
}

// Here i is 10

循环使用:let

1
2
3
4
5
6
7
8
let i = 5;  

for (let i = 0; i < 10; i++) {
  // some code
}

// Here i is 5

在第一个示例中,使用var,循环中声明的变量在循环外重新声明该变量。

在第二个示例中,使用let,循环中声明的变量不会在循环外重新声明该变量。

当在循环中使用let声明i变量时,i变量仅在循环内可见。


for/of 和 for/in 循环

for/in循环和for/of循环将在下一章中解释。


While 循环

while循环和do/while将在接下来的章节中解释。