javaScript中的循环与迭代

在javascript中循环提供了一种快速和简单的方式去做一些重复的事。
javaScript中的循环与迭代_第1张图片

for循环

一个for 循环会一直重复执行,直到指定的循环条件为 false。

for ([initialExpression]; [condition]; [incrementExpression])
  statement

如果有初始化表达式initialExpression,它将被执行。这个表达式通常会初始化一个或多个循环计数器,但语法上是允许一个任意复杂度的表达式的。这个表达式也可以声明变量。
计算condition 表达式的值。如果 condition 的值是 true,循环中的语句会被执行。如果 condition的值是 false,for 循环终止。如果condition
表达式整个都被省略掉了,condition的值会被认为是true。
循环中的statement 被执行。如果需要执行多条语句,可以使用块({ … })来包裹这些语句。如果有更新表达式
incrementExpression执行更新表达式。
回到步骤 2。


let str = '';

for (let i = 0; i < 9; i++) {
  str = str + i;
}
console.log(str);
//  "012345678"

do…while语句

do…while 语句一直重复直到指定的条件求值得到假值(false)。 一个 do…while 语句看起来像这样:

do
  statement  //语句
while (condition);  // 条件 

statement 在检查条件之前会执行一次。要执行多条语句(语句块),要使用块语句({ … })包括起来。 如果 condition
为真(true),statement 将再次执行。 在每个执行的结尾会进行条件的检查。 当 condition
为假(false),执行会停止并且把控制权交回给 do…while 后面的语句。

//在下面的例子中, 这个 do 循环将至少重复一次,并且一直重复直到 i 不再小于 5。
var i = 0;
do {
  i += 1;
  console.log(i);
} while (i < 5);

while

一个 while 语句只要指定的条件求值为真(true)就会一直执行它的语句块。一个 while 语句看起来像这样:

while (condition)
  statement

如果这个条件变为假,循环里的 statement 将会停止执行并把控制权交回给 while 语句后面的代码。如果一直为真则会造成死循环。

// 只要 n 小于 3,下面的 while 循环就会一直执行:
var n = 0;
var x = 0;
while (n < 3) {
  n++;
  x += n;
}

label

一个 label 提供了一个让你在程序中其他位置引用它的标识符。例如,你可以用 label 标识一个循环, 然后使用 break 或者
continue 来指出程序是否该停止循环还是继续循环。

label :
   statement

// label 的值可以是任何的非保留字的 JavaScript 标识符, statement 可以是任意你想要标识的语句(块)

var num = 0;
outPoint:
for (var i = 0 ; i < 10 ; i++){
  for (var j = 0 ; j < 10 ; j++){
    if( i == 5 && j == 5 ){
      break outPoint; // 在 i = 5,j = 5 时,跳出所有循环,
                      // 返回到整个 outPoint 下方,继续执行
    }
    num++;
  }
}

alert(num); // 输出 55
break

for…in

for … in语句循环一个指定的变量来循环一个对象所有可枚举的属性。JavaScript 会为每一个不同的属性执行指定的语句。

//循环数组时拿取的时数组的下标。
for (variable in object) {
  statements
}

for…of

for…of 语句在可迭代对象(包括Array、Map、Set、arguments
等等)上创建了一个循环,对值的每一个独特属性调用一次迭代。

for (variable of object) {
  statement
}
let arr = [3, 5, 7];
arr.foo = "hello";

for (let i in arr) {
   console.log(i); // 输出 "0", "1", "2", "foo"
}

for (let i of arr) {
   console.log(i); // 输出 "3", "5", "7"
}

// 注意 for...of 的输出没有出现 "hello"

你可能感兴趣的:(学习阶段)