for循环通过修改更新表达式可自定义步长:步长为2写作i+=2,步长为3且跳过前两个元素从i=2开始,负步长用i--或i-=2,需注意数组索引边界及稀疏数组处理。

JavaScript中for循环控制步长和遍历数组,核心在于灵活设置初始值、终止条件和更新表达式,同时注意数组索引边界和稀疏数组的处理。
用for循环自定义步长(如跳过偶数索引)
标准for循环的第三部分(更新表达式)决定每次迭代后变量如何变化。想实现步长为2、3或负数,直接修改该部分即可:
- 步长为2:从0开始,每次+2,适合遍历偶数位元素 // for (let i = 0; i
- 倒序遍历:从末尾开始,每次-1 // for (let i = arr.length - 1; i >= 0; i--)
- 步长为3且跳过前两个:起始设为2 // for (let i = 2; i
遍历数组时避免常见越界错误
数组索引从0开始,最大合法索引是arr.length - 1。终止条件写成i 或<code>i 会导致访问<code>undefined;而i 始终安全。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 正确写法:for (let i = 0; i
- 错误写法:
for (let i = 0; i (多执行一次) - 空数组时
arr.length为0,循环体不会执行,无需额外判断
处理稀疏数组或含空位的情况
JavaScript数组允许存在空槽(例如[1, , 3]),此时arr[1]为undefined,但1 in arr返回false。单纯靠索引遍历会访问到空位,若需跳过,可结合hasOwnProperty或in操作符:
立即学习“Java免费学习笔记(深入)”;
- 检测索引是否存在:// if (i in arr) { /* 处理有效元素 */ }
- 更稳妥的方式是用
Array.isArray(arr) && arr.length确认类型和长度,再遍历 - 若业务逻辑不允许
undefined参与计算,建议在循环体内加if (arr[i] !== undefined)判断
替代方案:何时该放弃for,改用其他方法
for循环适合需要精确控制索引、步长或中途退出的场景。但若只是顺序遍历并操作每个元素,现代语法往往更简洁安全:
-
arr.forEach((item, index) => { ... })—— 简单遍历,不支持break/continue -
for (const [index, item] of arr.entries())—— 获取索引和值,支持break -
for (const item of arr)—— 只需值,不关心索引,最简洁

















