JavaScript循环分基础、对象/数组专用、函数式三类,控制流程依赖条件判断与break/continue/标签语句等;for适合精确控制,forEach/map/filter用于遍历转换筛选。
JavaScript 中的循环类型主要解决“重复执行代码”的需求,按用途和语法可分基础循环、对象/数组专用遍历、函数式遍历三类。控制流程则依赖条件判断、跳转语句和作用域机制,关键在于明确“何时开始、何时继续、何时跳出”。
适用于通用重复逻辑,强调手动控制执行次数或条件:
for (let i = 0; i 。注意变量作用域(let 声明具有块级作用域,var 会提升)。
专为数组、对象、字符串等内置类型设计,语义更清晰,减少手动索引管理:
hasOwnProperty() 过滤。break/continue,语义简洁直接。以声明式方式操作数组,返回新数组或产生副作用,不改变原数组(除 forEach 仅执行外):
undefined)。不能用 break 或 return 中断整个循环,只能用 throw 模拟退出(不推荐)。[1,2,3].map(x => x * 2) → [2,4,6]。[1,2,3,4].filter(x => x > 2) → [3,4]。无论使用哪种循环,都可通过以下方式干预执行流:
break 或 continue 使用,可跳出多
层嵌套。例如:outer: for (...) { inner: for (...) { break outer; } }。forEach 等无法用 break 的场景,可用 try/catch 抛出自定义错误实现提前退出(属非常规方案)。