JavaScript中无“循环_”语法,原生循环有for、while、do...while、for...of四种;for适合索引控制与算法步进,for...of专用于可迭代对象取值。

JavaScript 里没有叫 循环_ 的语法或函数,你看到的可能是变量名、拼写错误,或者混淆了其他语言(比如 Python 的下划线命名习惯)。直接写 循环_ 会报 ReferenceError: 循环_ is not defined。
JavaScript 中的循环结构有哪些
原生 JS 提供 4 种常用循环机制,适用场景和行为差异明显,选错容易引发死循环或跳过迭代:
-
for:适合已知迭代次数、需要精确控制初始化/条件/更新逻辑的场景,比如遍历数组索引、实现算法步进 -
while:条件前置判断,适用于不确定迭代次数、依赖外部状态变化的场景(如轮询接口返回) -
do...while:至少执行一次,适合“先干活再检查”的逻辑,比如用户输入校验重试 -
for...of:专为可迭代对象(Array、Map、Set、字符串等)设计,直接取值,不暴露索引
for 和 for...of 到底该用哪个
关键区别不在“能不能用”,而在“你要访问什么”:
- 要用索引、要修改原数组、要跨步(
i += 2)、要和另一个数组对齐 → 用for (let i = 0; i - 只读取值、代码简洁优先、遍历
Map或Set→ 用for (const item of arr) -
for...in不是为数组设计的,它遍历对象属性名(包括原型链上的),对数组会返回字符串索引("0"、"1"),且顺序不保证,一般不用在数组上
常见死循环和越界问题怎么防
多数循环卡死或报错,不是语法错,而是逻辑失控:
iOS多线程编程对于iOS开发初学者来说,总是会觉得很难理解和掌握,现在通过几个实例来更加系统全面的理解iOS多线程编程,希望对大家有所帮助。 有些程序是一条直线,起点到终点;有些程序是一个圆,不断循环,直到将它切断。直线的如简单的Hello World,运行打印完,它的生命周期便结束了,像昙花一现那样;圆如操作系统,一直运行直到你关机。 一个运行着的程序就是一个进程或者叫做一个任务,一个进程至少包含一个线程,线程就是程序的执行流。Mac和iOS中的程序启动,创建好一个进程的同时,一个线程便开始运行,
立即学习“Java免费学习笔记(深入)”;
-
for里忘了写i++或写成i = i + 1(少了个+变成赋值)→ 条件永远为真 - 用
arr.length做边界但循环中又push新元素 → 长度动态增长,停不下来 -
while (obj.val === undefined)却没在循环体内改obj.val→ 条件永不满足 - 遍历稀疏数组(
[1, , 3])时用for...in,可能漏掉空位;用for...of会把空位当作undefined输出
复杂点在于:循环嵌套时,内层修改外层变量、异步回调里闭包捕获的循环变量(var 声明的 i 最终全是最后一个值),这些不会立刻报错,但结果错得隐蔽。










