怎样进行循环_javascript中有哪些循环结构【教程】

8次阅读

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

怎样进行循环_javascript中有哪些循环结构【教程】

javascript 里没有叫 循环_ 的语法或函数,你看到的可能是变量名、拼写错误,或者混淆了其他语言(比如 python 的下划线命名习惯)。直接写 循环_ 会报 ReferenceError: 循环_ is not defined

JavaScript 中的循环结构有哪些

原生 js 提供 4 种常用循环机制,适用场景和行为差异明显,选错容易引发死循环或跳过迭代:

  • for:适合已知迭代次数、需要精确控制初始化/条件/更新逻辑的场景,比如遍历数组索引、实现算法步进
  • while:条件前置判断,适用于不确定迭代次数、依赖外部状态变化的场景(如轮询接口返回)
  • do...while:至少执行一次,适合“先干活再检查”的逻辑,比如用户输入校验重试
  • for...of:专为可迭代对象ArraymapSet字符串等)设计,直接取值,不暴露索引

for 和 for…of 到底该用哪个

关键区别不在“能不能用”,而在“你要访问什么”:

  • 要用索引、要修改原数组、要跨步(i += 2)、要和另一个数组对齐 → 用 for (let i = 0; i
  • 只读取值、代码简洁优先、遍历 MapSet → 用 for (const item of arr)
  • for...in 不是为数组设计的,它遍历对象属性名(包括原型链上的),对数组会返回字符串索引("0""1"),且顺序不保证,一般不用在数组上

常见死循环和越界问题怎么防

多数循环卡死或报错,不是语法错,而是逻辑失控:

立即学习Java免费学习笔记(深入)”;

  • for 里忘了写 i++ 或写成 i = i + 1(少了个 + 变成赋值)→ 条件永远为真
  • arr.Length 做边界但循环中又 push 新元素 → 长度动态增长,停不下来
  • while (obj.val === undefined) 却没在循环体内改 obj.val → 条件永不满足
  • 遍历稀疏数组([1, , 3])时用 for...in,可能漏掉空位;用 for...of 会把空位当作 undefined 输出

复杂点在于:循环嵌套时,内层修改外层变量、异步回调里闭包捕获的循环变量(var 声明的 i 最终全是最后一个值),这些不会立刻报错,但结果错得隐蔽。

text=ZqhQzanResources