为何我的JavaScript函数陷入无限循环?请解析原因
解析JavaScript代码陷入无限循环的原因
先看你提供的代码片段里的for循环:
for( let i = 0; i = 3; i++){
还有完整代码里的循环(应该是输入笔误,实际应为i = 3):
for( let i = 0; = i 3; i++){ sayThanks(); }
问题核心出在for循环的条件判断部分:
- 正常for循环的结构是
for(初始化表达式; 条件判断表达式; 增量表达式),条件判断需要返回布尔值(true/false)来决定是否继续循环。 - 但你这里写的是赋值语句
i = 3,而非比较语句(比如i < 3或i <= 3)。在JavaScript中,赋值语句会返回被赋予的值,也就是3,而非零数值会被自动转为布尔值true。 - 每次循环执行到条件判断时,都会把
i重新赋值为3,条件判断结果为true,循环继续。哪怕i++让i变成4,下一次循环的条件判断又会把i重置为3,永远满足true的条件,循环根本停不下来。
另外完整代码里的= i 3是明显的语法错误,大概率是输入时把i = 3写反了,本质还是用赋值代替了比较的问题。
内容的提问来源于stack exchange,提问作者Winno
相关产品推荐
相关产品推荐

