JavaScript 循环与迭代
在编写代码时,我们经常需要对一组数据进行重复操作,例如遍历数组、处理对象属性、或者执行某个步骤多次。JavaScript 提供了多种循环控制结构,可以帮助我们高效地完成这些任务。
1. for 语句
for
语句是最常用的循环结构之一。它包括三个部分:初始化、条件判断和更新。适用于需要明确循环次数的场景。
for (let i = 0; i < 5; i++) {
console.log(i); // 输出 0 到 4
}
2. do…while 语句
do...while
语句先执行一次循环体,然后再判断条件是否成立,若条件为真则继续执行。适用于至少需要执行一次循环体的场景。
let i = 0;
do {
console.log(i); // 输出 0 到 4
i++;
} while (i < 5);
3. while 语句
while
语句先判断条件是否成立,再决定是否执行循环体。适用于循环次数不确定,但依赖条件判断的场景。
let i = 0;
while (i < 5) {
console.log(i); // 输出 0 到 4
i++;
}
4. label 语句
label
语句用来标记一个代码块,可以与 break
和 continue
结合使用,灵活控制多层循环。
outerLoop: for (let i = 0; i < 3; i++) {
for (let j = 0; j < 3; j++) {
if (i === 1) {
break outerLoop; // 终止外层循环
}
console.log(`i: ${i}, j: ${j}`);
}
}
5. break 语句
break
语句用于立即退出循环,不再执行循环的剩余部分。
for (let i = 0; i < 5; i++) {
if (i === 3) {
break; // 退出循环
}
console.log(i); // 输出 0 到 2
}
6. continue 语句
continue
语句用于跳过当前循环的剩余部分,直接进入下一次循环。
for (let i = 0; i < 5; i++) {
if (i === 3) {
continue; // 跳过 3
}
console.log(i); // 输出 0, 1, 2, 4
}
7. for…in 语句
for...in
语句用于遍历对象的可枚举属性(包括继承的可枚举属性)。
const obj = { a: 1, b: 2, c: 3 };
for (let key in obj) {
console.log(`${key}: ${obj[key]}`); // 输出 "a: 1", "b: 2", "c: 3"
}
8. for…of 语句
for...of
语句用于遍历可迭代对象(如数组、字符串、Map、Set 等)。
const arr = ['a', 'b', 'c'];
for (let value of arr) {
console.log(value); // 输出 "a", "b", "c"
}