JavaScript中重复执行代码主要靠for、while、do...while三种基础循环及for...of、for...in两种遍历语法;for适用于已知次数的索引操作,while先判后执适合动态条件,do...while至少执行一次,for...of遍历值(推荐数组),for...in遍历对象可枚举属性名(慎用于数组)。

JavaScript 中重复执行代码主要靠循环结构,核心有 for、while、do...while 三种基础循环,外加 for...of 和 for...in 两种遍历专用语法。选哪种取决于你要处理的数据类型和执行条件。
for 循环:适合已知次数的重复操作
最常用、最灵活的循环,适用于明确起始、结束和步进规则的场景。比如打印 1 到 5:
- 写法固定:for (初始化; 条件判断; 更新表达式) { 执行体 }
- 初始化只执行一次,每次循环前先判断条件,为 true 才执行循环体,之后自动执行更新表达式
- 常用于数组索引遍历(需配合
array.length)
while 循环:条件满足就一直执行
先判断再执行,适合不确定循环次数、依赖动态条件的场景。比如等待用户输入合法数字:
- 写法:while (条件) { 循环体 },条件为 false 时立即退出
- 必须在循环体内修改条件相关变量,否则容易陷入死循环
- 如果初始条件就不成立,循环体一次都不会执行
do...while 循环:至少执行一次的条件循环
先执行后判断,确保循环体最少运行一遍。适合需要“先做再问”的逻辑,比如菜单交互:
立即学习“Java免费学习笔记(深入)”;
- 写法:do { 循环体 } while (条件); 注意末尾有分号
- 无论条件是否为真,循环体都会先执行一次,之后再检查条件决定是否继续
- 比 while 多一次确定性执行,适合初始化+验证类流程
for...of 和 for...in:专用于遍历数据结构
两者语义不同,不能混用:
- for...of 遍历可迭代对象的值(如数组、字符串、Map、Set),顺序可靠,推荐用于数组遍历
- for...in 遍历对象自身及原型链上的**可枚举属性名**(即 key),返回的是字符串索引或键名,不保证顺序,慎用于数组
- 遍历数组优先用
for...of或传统for,避免for...in带来的意外属性和顺序问题
不复杂但容易忽略细节,掌握每种循环的触发时机和适用边界,能帮你写出更稳、更易读的重复逻辑。










