移除for循环中a=引发电脑死机,求技术原因解析
为什么移除for循环第三个表达式里的
a=会导致死循环? - 先明确for循环三个表达式的作用:第一个是初始化变量,第二个是循环继续的判断条件,第三个是每次循环结束后执行的更新操作。
- 你原来的代码里
a = a + 10是赋值操作:计算a+10的结果,再把这个结果重新赋值给a,这样a的值每次循环都会增加10——从1到11,再到21…直到91,下一次计算后a变成101,不满足a<=100的条件,循环就正常终止了。 - 但当你删掉
a=,只剩下a+10时,这只是做了一次算术运算,算出1+10=11,但这个结果根本没存回a里!a的值一直是初始的1,永远满足a<=100的判断条件,循环会无限重复执行,这就是死循环。 - 浏览器的JavaScript引擎会一直占用CPU执行这个无限循环,时间一长就会导致网页持续加载、电脑资源被耗尽,最终卡死甚至死机。
内容的提问来源于stack exchange,提问作者Soham
相关产品推荐
相关产品推荐

