循环语句

js/loop2026-08-24 19:46:25

JavaScript 中提供了这些循环语句:

for 语句

for (var i = 0; i < selectObject.options.length; i++) {
  if (selectObject.options[i].selected) {
    numberSelected++;
  }
}

do...while 语句

var i = 0;
do {
  i += 1;
  console.log(i);
} while (i < 5);

while 语句

while (n < 3) {
  n++;
  x += n;
}

label 语句

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 语句

使用 break 语句来终止循环,switch,或者是链接到 label 语句。

  • 当你使用不带 label 的 break 时,它会立即终止当前所在的 while,do-while,for,或者 switch 并把控制权交回这些结构后面的语句。
  • 当你使用带 label 的 break 时,它会终止指定的带标记(label)的语句。
for (i = 0; i < a.length; i++) {
  if (a[i] == theValue) {
    break;
  }
}

continue 语句

continue 语句可以用来继续执行(跳过代码块的剩余部分并进入下一循环)一个 while、do-while、for,或者 label 语句。

while (i < 5) {
  i++;
  if (i == 3) {
    continue;
  }
  n += i;
  console.log(n);
}

for...in 语句

for...in 语句循环一个指定的变量来循环一个对象 所有(包括继承而来的) 可枚举 的 字符串键 属性(不包含 Symbol 键属性)。JavaScript 会为每一个不同的属性执行指定的语句。

const object = { a: 1, b: 2, c: 3 };

for (const property in object) {
  console.log(`${property}: ${object[property]}`);
}

// Expected output:
// "a: 1"
// "b: 2"
// "c: 3"

许多 JavaScript 风格指南和代码检查工具建议避免使用 for...in 循环,因为它会遍历整个原型链,这很少是我们想要的,并且可能会与更常用的 for...of 循环混淆。for...in 循环最常用于调试目的,它是一种简单的方式来检查对象的属性(通过向控制台输出或其他方式)。在对象被用作临时键值对的情况下,for...in 循环可以检查这些键中是否存在持有特定值的键。

参见枚举对象的属性。

for...of 语句

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

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"

参见对象的迭代协议。

参考

循环与迭代
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Loops_and_iteration

本页目录