let status = true;while (status) {}console.log("没有执行到这里");
8 回答
慕尼黑5688855
TA贡献1848条经验 获得超2个赞
你这个代码执行流程
let status = true;
while (status) { // 每次执行到这里 为true 执行{}里面代码 直到为false的时候退出 而你的status一 直是true
}
...
湖上湖
TA贡献2003条经验 获得超2个赞
首先,编程语言里几乎所有的程序控制关键字,包括判断、循环之类的,其实全都是if的派生;换句话说,如果语言允许,它们都可以写成if...的形式。
其次,回到问题上来。那么while就可以转化为:
Label:
If (xxx) {
dosomething;
Goto Label;
}
这种形式。当然这不是javascript,因为它在设计的时候拿掉了goto、而只保留了label,所以你只要能看明白大概其意思就行。那么我们知道if (true)其实是没有判断作用的、一个“常通”的逻辑语句,那么这时,这段其实就变成了:
Label:
dosomething;
Goto Label;
没有任何的控制,程序不断在执行操作和跳转到label段落之间往复,也就是:死循环。
犯罪嫌疑人X
TA贡献2080条经验 获得超4个赞
let status = true;
while (status) {
}
你在while内并没有改变status的值,所以它一直是true,就会一直走到这里,形成死循环
添加回答
举报
0/150
提交
取消