javascript中的循环有哪些_如何使用for循环?

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

JavaScript 中的循环主要有 forwhiledo...whilefor...infor...of,还有数组方法如 forEachmap 等。其中 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),否则可能跳过或重复处理某些项。

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 出去控制流程
  • whiledo...while 更适合条件不确定、依赖运行时判断的场景,比如等待某个状态变化

基本上就这些。用 for 循环不复杂,但容易忽略缓存 length、边界条件或副作用影响,写的时候多看一眼初始化和更新逻辑就行。