forEach是专用于遍历数组的高阶函数,依次执行回调但返回undefined且不支持break;适用于只读副作用操作,不适用于需返回新数组、筛选、累加、查找或中断的场景。
JavaScript 的 forEach 是专门用来遍历数组的方法,它会依次对数组的每个元素执行一次你提供的函数,但不会返回新数组(返回 undefined),也不支持中断(比如不能用 break 或 return 跳出整个循环)。
语法很简单:arr.forEach(callback),其中 callback 是一个函数,接收最多三个参数:
item
index
arr
例如:
const colors = ['red', 'green', 'blue'];forEach 是高阶函数,更语义化、代码更简洁,适合“只读不改结构”的场景;而传统 for 循环更灵活:
forEach 无法用 
break/continue 中断,想提前退出只能抛错或用其他方法(如 some/every)forEach 不会改变原数组,也不能直接返回新数组(要生成新数组请用 map)for 循环可以控制步长、反向遍历、随时跳出,也更容易调试初学者容易踩几个坑:
undefined,写成 const newArr = arr.forEach(...) 会得到 undefined
forEach 回调里写 async 函数,不会按顺序等待,因为 forEach 本身不处理 Promise。需要并发执行用 Promise.all,要串行就别用 forEach,改用 for...of 或普通 for
[1, , 3])不会触发回调推荐用 forEach 的情况:
建议换别的方法的情况:
map
filter
reduce
find 或 findIndex
for、for...of 或 some/every