答案:forEach是JavaScript数组的遍历方法,执行回调函数处理每个元素,不返回新数组,适用于打印、DOM操作等副作用场景。语法为array.forEach(callback(currentValue, index, array), thisArg),支持索引和原数组参数,并可指定this上下文;常用于基本遍历,但无法中途跳出循环,稀疏数组仍访问空槽,空数组不执行回调,适合无返回值的操作。

在 JavaScript 中,forEach 是数组的一个内置方法,用于遍历数组中的每一个元素,并对每个元素执行提供的回调函数。它不会返回新的数组,也不会改变原数组,适合用于执行副作用操作,比如打印、修改 DOM 或发送请求。
基本语法
forEach 方法的语法如下:
array.forEach(function(currentValue, index, array) {// 执行的操作
}, thisArg);
- currentValue:当前正在处理的元素。
- index(可选):当前元素的索引。
- array(可选):调用 forEach 的原数组。
- thisArg(可选):执行回调函数时使用的 this 值。
使用示例
下面是一些常见的使用场景:
const fruits = ['苹果', '香蕉', '橙子'];fruits.forEach(function(fruit, index) {
console.log(index + ': ' + fruit);
});
// 输出:
// 0: 苹果
// 1: 香蕉
// 2: 橙子
也可以使用箭头函数简化写法:
fruits.forEach((fruit, index) => {console.log(`${index} - ${fruit}`);
});
注意事项
- forEach 不会跳过已删除或未赋值的元素(稀疏数组中仍会访问空槽)。
- 无法中途使用 break 或 continue 跳出循环,若需要提前退出,应考虑使用 for 循环或 for...of。
- 回调函数中使用 return 只是结束当前迭代,不会终止整个遍历。
- 对空数组调用 forEach 不会执行回调。
结合 thisArg 使用
可以传入第三个参数作为回调函数内部的 this 指向:
const obj = {prefix: 'Item:',
print(item) {
console.log(this.prefix + item);
}
};
['A', 'B', 'C'].forEach(function(item) {
this.print(item);
}, obj); // 指定 this 为 obj
基本上就这些。forEach 简洁明了,适合不需要返回新数组的遍历操作。注意它不可链式中断,使用时要根据场景判断是否合适。









