Skip to content

循环语句

循环语句用于重复执行一段代码,直到满足特定条件为止。JavaScript 提供了多种循环语句来满足不同的需求。

for 循环

for 循环是最常用的循环语句之一,它允许我们精确控制循环的次数。

语法

javascript
for (initialization; condition; increment) {
  // 循环体
}

示例

javascript
// 打印数字 1 到 5
for (let i = 1; i <= 5; i++) {
  console.log(i);
}

// 遍历数组
let fruits = ["苹果", "香蕉", "橙子"];
for (let i = 0; i < fruits.length; i++) {
  console.log(fruits[i]);
}

for...in 循环

for...in 循环用于遍历对象的可枚举属性。

语法

javascript
for (property in object) {
  // 循环体
}

示例

javascript
let person = {
  name: "张三",
  age: 25,
  job: "开发者"
};

for (let key in person) {
  console.log(key + ": " + person[key]);
}

// 输出:
// name: 张三
// age: 25
// job: 开发者

for...of 循环

for...of 循环用于遍历可迭代对象(如数组、字符串等)。

语法

javascript
for (element of iterable) {
  // 循环体
}

示例

javascript
// 遍历数组
let colors = ["红色", "绿色", "蓝色"];
for (let color of colors) {
  console.log(color);
}

// 遍历字符串
let text = "Hello";
for (let char of text) {
  console.log(char);
}

while 循环

while 循环在条件为真时重复执行代码块。

语法

javascript
while (condition) {
  // 循环体
}

示例

javascript
let count = 1;
while (count <= 5) {
  console.log(count);
  count++;
}

do...while 循环

do...while 循环至少会执行一次循环体,然后在条件为真时继续执行。

语法

javascript
do {
  // 循环体
} while (condition);

示例

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

循环控制语句

break 语句

break 语句用于立即跳出循环。

javascript
for (let i = 1; i <= 10; i++) {
  if (i === 5) {
    break; // 当 i 等于 5 时跳出循环
  }
  console.log(i);
}
// 输出:1 2 3 4

continue 语句

continue 语句用于跳过当前循环的剩余部分,直接进入下一次循环。

javascript
for (let i = 1; i <= 10; i++) {
  if (i % 2 === 0) {
    continue; // 跳过偶数
  }
  console.log(i);
}
// 输出:1 3 5 7 9

嵌套循环

循环可以嵌套使用,即在一个循环内部再使用另一个循环。

示例

javascript
// 打印九九乘法表
for (let i = 1; i <= 9; i++) {
  for (let j = 1; j <= i; j++) {
    console.log(j + " × " + i + " = " + (i * j));
  }
  console.log("---");
}

forEach 方法

数组的 forEach 方法提供了一种更简洁的方式来遍历数组。

示例

javascript
let numbers = [1, 2, 3, 4, 5];

numbers.forEach(function(number) {
  console.log(number);
});

// 使用箭头函数
numbers.forEach(number => console.log(number));

循环性能比较

不同类型的循环在性能上略有差异:

  1. for 循环通常最快,因为它的结构最简单
  2. while 循环稍慢于 for 循环
  3. forEach 方法相对较慢,但代码更简洁易读
  4. for...in 循环最慢,因为它需要遍历对象的所有可枚举属性

最佳实践

  1. 选择合适的循环类型

    • 遍历数组时使用 for 循环或 for...of 循环
    • 遍历对象属性时使用 for...in 循环
    • 当不确定循环次数时使用 while 循环
  2. 避免无限循环:确保循环条件最终会变为假,否则会导致程序挂起。

  3. 使用有意义的变量名:在循环中使用描述性的变量名,提高代码可读性。

  4. 减少循环内的复杂操作:避免在循环内进行不必要的计算或 DOM 操作。

  5. 合理使用 break 和 continue:虽然这些语句很有用,但过度使用会使代码难以理解。

  6. 考虑使用数组方法:对于简单的数组操作,可以考虑使用 mapfilterreduce 等数组方法,它们通常比传统循环更清晰。