为什么JavaScript for循环中用i+2替代i+=2会导致程序崩溃?
原因说明
+= 是JavaScript里的复合赋值运算符,i += 2 等价于 i = i + 2,作用是先算出 i + 2 的结果,再把这个新值重新赋值给变量i,以此完成每次循环的计数递增:
- 初始
i为0,每次循环后i会依次变为2、4、6、8、10,当i递增到12时,不再满足i <= 10的循环判断条件,循环就会正常终止,最终nums数组会输出[0, 2, 4, 6, 8, 10]。
如果你把=去掉,只写i + 2,这个表达式只会计算出i加2的临时结果,但不会把结果存回变量i里,也就是说i的值会永远停留在初始的0。此时循环判断条件i <= 10永远为真,就会形成死循环,程序会无限次执行nums.push(i)操作,持续占用运行资源,最终导致运行平台崩溃。
内容的提问来源于stack exchange,提问作者santti_alter
相关产品推荐
相关产品推荐

