研究对象
本文仅对比分析for
、for...in
、for...of
与 forEach
核心差异概览
特性 | for | for...in | for...of | forEach |
---|---|---|---|---|
适用对象 | 通用 | 对象属性 | 可迭代对象值 | 数组元素 |
遍历内容 | 索引/自定义逻辑 | 键名(含继承属性) | 值(直接访问) | 元素/索引/数组本身 |
中断能力 | ✅ break/continue | ✅ break/continue | ✅ break/continue | ❌(需异常抛出) |
性能表现 | 最高 | 中等 | 高 | 中等 |
ES6+ 数据结构 | ❌ | ❌ | ✅ Map/Set等 | ❌ |
各循环结构详解
1. for
循环:精准控制的传统方案
语法模板
for (初始化; 条件; 迭代) {
// 循环体
}
核心用途
- 需要精确控制迭代逻辑的场景(如复杂步长、提前退出)
- 大规模数据遍历(性能敏感场景)
关键特性
const arr = [10, 20, 30];
for (let i = 0; i < arr.length; i++) {
if (arr[i] > 15) break; // 支持中断
console.log(arr[i] * 2); // 20
}