for循环是最基础、控制最精细的循环,适合需索引、提前退出或自定义步长的场景;其语法固定为初始化、条件判断、更新表达式三部分,用分号分隔。

JavaScript 中的循环主要有 for、while、do...while、for...in、for...of,还有数组方法如 forEach、map 等。其中 for 循环 是最基础、控制最精细的一种,适合需要索引、提前退出或自定义步长的场景。
for 循环的基本结构和写法
语法固定为三部分:初始化、条件判断、更新表达式,用分号分隔。
示例:
for (let i = 0; i
console.log(i);
}
这段代码会输出 0 到 4。
关键点:
- 初始化(let i = 0)只执行一次,通常定义计数器
- 条件(i )在每次循环开始前检查,为 false 就停止
- 更新(i++)在每次循环体执行完后运行
- 循环体可以是单行语句,也可以是多行代码块
for 循环遍历数组的实用写法
数组遍历时,常配合 length 属性使用。推荐把长度缓存起来,避免每次重复读取:
- const arr = ['a', 'b', 'c'];
for (let i = 0, len = arr.length; i console.log(i, arr[i]);
} - 如果需要修改原数组,比如把每个元素转大写:
for (let i = 0; i arr[i] = arr[i].toUpperCase();
}
注意:不要在循环中直接改 arr.length(比如 push 或 splice),否则可能跳过或重复处理某些项。
立即学习“Java免费学习笔记(深入)”;
for 循环中 break 和 continue 的用法
它们让循环更灵活,但不能脱离循环体单独使用。
-
break:立即终止整个循环
for (let i = 0; i if (i === 3) break;
console.log(i); // 输出 0 1 2
} -
continue:跳过本次剩余代码,进入下一轮
for (let i = 0; i if (i % 2 === 0) continue;
console.log(i); // 输出 1 3
}
for 循环和其他循环的区别要点
避免常见误用:
- for...in 遍历的是对象属性名(包括数组索引),但会遍历原型链上的可枚举属性,不保证顺序,不推荐用于数组
- for...of 直接遍历值,支持数组、字符串、Map、Set 等可迭代对象,不能获取索引(除非配合 entries())
- forEach 是数组方法,简洁但无法用 break/continue 中断,也不能 return 出去控制流程
- while 和 do...while 更适合条件不确定、依赖运行时判断的场景,比如等待某个状态变化
基本上就这些。用 for 循环不复杂,但容易忽略缓存 length、边界条件或副作用影响,写的时候多看一眼初始化和更新逻辑就行。











