for 语句 (JavaScript)
只要满足指定的条件,就执行一个语句块。
for ([initialization]; [test]; [increment]) statement
- initialization
-
可选。一个表达式。该表达式在执行循环前仅被执行一次。
test -
可选。布尔表达式。如果 test 为 true,则执行 statement。如果 test 为 false,则终止循环。
increment -
可选。一个表达式。在每次通过循环的结尾时执行该增量表达式。
statement -
可选。如果 test 为 true,则执行一个或多个语句。可以是复合语句。
在需要将循环执行已知次数时,通常使用 for 循环。 for 循环对于迭代数组以及执行顺序处理很有用。
条件表达式的测试发生在循环执行之前,因此 for 语句执行零次或多次。
在 for 循环语句块中的任何行上,都可以使用 break 语句来退出循环,或者可以使用 continue 语句将控制权移交给循环的下一迭代。
在下面的示例中,for 语句执行括起来的语句,如下所示:
-
首先,计算变量 i 的初始值。
-
然后,只要 i 的值小于或等于 9,就会执行 document.write 语句并重新计算 i。
-
当 i 大于 9 时,条件变为 false 并且将控制权移交到循环外部。
// i is set to 0 at the start and is incremented by 1 at the// end of each iteration.// The loop terminates when i is not less than or equal to// 9 before a loop iteration.for (var i = 0; i <= 9; i++) { document.write (i); document.write (" ");}// Output: 0 1 2 3 4 5 6 7 8 9
for 语句的所有表达式都是可选的。在下面的示例中,for 语句创建一个无限循环,break 语句用于退出循环。
var j = 0;for (;;) { if (j >= 5) { break; } j++; document.write (j + " ");}// Output: 1 2 3 4 5
for...in 语句 (JavaScript)
为一个对象的每个属性或一个数组的每个元素执行一个或多个语句。
for (variable in [object | array]) { statements }
- variable
-
必需。一个变量,可以是 object 的任何属性名或 array 的任何元素索引。
object, array -
可选。要对其进行循环的对象或数组。
statements -
可选。要为 object 的每个属性或 array 的每个元素执行的一个或多个语句。可以是复合语句。
在循环的每个迭代开始时,variable 的值为 object 的下一个属性名或 array 的下一个元素索引。然后,可以将 variable 用于循环中的任何语句,以便引用 object 的属性或 array 的元素。
未以确定的方式分配对象的属性。不能按某个特定属性的索引指定该属性,而只能按该属性的名称指定它。
按元素顺序循环访问数组,即 0、1、2。
下面的示例阐释了 for...in 语句的用法,该语句将一个对象用作一个相关数组。
// Initialize object.a = {"a" : "Athens" , "b" : "Belgrade", "c" : "Cairo"}// Iterate over the properties.var s = ""for (var key in a) { s += key + ": " + a[key]; s += ""; }document.write (s);// Output:// a: Athens// b: Belgrade// c: Cairo
此示例阐释了如何使用 for ... in 语句来便循环访问具有 expando 属性的 Array 对象。
// Initialize the array.var arr = new Array("zero","one","two");// Add a few expando properties to the array.arr["orange"] = "fruit";arr["carrot"] = "vegetable";// Iterate over the properties and elements.var s = "";for (var key in arr) { s += key + ": " + arr[key]; s += "";}document.write (s);// Output:// 0: zero// 1: one// 2: two// orange: fruit// carrot: vegetable
for...of 语句 (JavaScript)
对从可迭代对象中获取的迭代器的每个值执行一个或多个语句。
for (variable of object) { statements }
- variable
-
必需。可为 object 的任何属性值的变量。
object -
必需。 Array、Map、Set 等可迭代对象或实现 迭代器接口的对象。
statements -
可选。要为 object 的每个值执行的一个或多个语句。可以是复合语句。
在循环的每个迭代的开头,variable 的值是 object 的下一个属性值。
下面的示例阐释了如何使用数组上的 for...of 语句。
let arr = [ "fred", "tom", "bob" ];for (let i of arr) { console.log(i);}// Output:// fred// tom// bob
下面的示例阐释了如何使用 Map 对象上的 for...of 语句。
var m = new Map();m.set(1, "black");m.set(2, "red");for (var n of m) { console.log(n);}// Output:// 1,black// 2,red