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
变量仅在循环内可见。