传统 for 循环
const arr = [1, 2, 3, 4, 5]; // 基本 for 循环 for (let i = 0; i < arr.length; i++) { console.log(arr[i]); // 1, 2, 3, 4, 5 } // 优化版(缓存长度) for (let i = 0, len = arr.length; i < len; i++) { console.log(arr[i]); }for...of 循环(ES6+)
const arr = [1, 2, 3, 4, 5]; for (const item of arr) { console.log(item); // 直接获取元素值 } // 获取索引和值 for (const [index, value] of arr.entries()) { console.log(`索引 ${index}: 值 ${value}`); }forEach() 方法
const arr = [1, 2, 3, 4, 5]; arr.forEach((item, index, array) => { console.log(`索引 ${index}: 值 ${item}`); // array 是原始数组 }); // 注意:forEach 无法使用 break 或 return 中断循环map() 方法(返回新数组)
const arr = [1, 2, 3, 4, 5]; const doubled = arr.map(item => item * 2); console.log(doubled); // [2, 4, 6, 8, 10]for...in 循环(主要用于对象,也可用于数组)
const arr = [1, 2, 3, 4, 5]; for (const index in arr) { console.log(arr[index]); // 1, 2, 3, 4, 5 } // 注意:for...in 会遍历所有可枚举属性,包括原型链上的区别: