let status = true;
while (status) {
}
console.log("没有执行到这里");
你这个代码执行流程
let status = true;
while (status) { // 每次执行到这里 为true 执行{}里面代码 直到为false的时候退出 而你的status一 直是true
}
...
首先,编程语言里几乎所有的程序控制关键字,包括判断、循环之类的,其实全都是if的派生;换句话说,如果语言允许,它们都可以写成if...的形式。
其次,回到问题上来。那么while就可以转化为:
Label:
If (xxx) {
dosomething;
Goto Label;
}
这种形式。当然这不是javascript,因为它在设计的时候拿掉了goto、而只保留了label,所以你只要能看明白大概其意思就行。那么我们知道if (true)
其实是没有判断作用的、一个“常通”的逻辑语句,那么这时,这段其实就变成了:
Label:
dosomething;
Goto Label;
没有任何的控制,程序不断在执行操作和跳转到label段落之间往复,也就是:死循环。
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
4 回答2.4k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
while(true) 当然是死循环了, 没有为什么