JavaScript for 循环

循环可以多次重复的执行同一段代码逻辑,本文讲述 JavaScript 中的 for 循环。

循环可以多次重复的执行同一段代码逻辑,本文讲述 JavaScript 中的 for 循环。

处理数组时可能对每个元素都需要做相同或者类似的操作,就像下面这样:

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 循环的语法如下:

 for (statement 1; statement 2; statement 3 ) {
  // _code block to be executed_ }
  • 语句 1(statement 1)在代码块执行之前执行(一次)。
  • 语句 2(statement 2)定义了执行代码块的条件,只有条件运算结果为真时,才执行代码块。
  • 语句 3(statement 3)在代码块执行后(每次)执行。
for (let i = 0; i < 5; i++) {
  text += "The number is " + i + "<br>";
}

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

  • 语句 1 (let i = 0) 在循环开始之前设置一个变量 i,且赋值为 0
  • 语句 2 (i < 5) 定义了循环运行的条件(i 必须小于 5)。
  • 语句 3 (i++) 在每次执行循环中的代码块后对 i 的值自增。

循环变量的作用域

var 定义的变量时全局的,在 for 中用 var 重新声明变量的话,会影响全局。 用 let 定义的变量时局限于当前循环作用域的,不影响作用域外面的同名变量。

var 在循环中使用:

var i = 5;

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

// 现在 i 的值是 10

let 在循环中使用:

let i = 5;

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

// 现在 i 的值是 5

在第一个示例中,使用 var ,循环中声明的变量重新声明是全局的,影响循环外的同名变量。

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

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