JS Bin同时无限循环

时间:2014-05-03 18:44:04

标签: javascript jsbin

当我执行以下代码时,我注意到JS Bin runner的奇怪行为:

var ask = prompt("test");

while(ask!=="yes"){
    ask = prompt("test");
}

我遇到了这种错误:

  

在第4行退出潜在的无限循环。禁用循环保护:   将“// noprotect”添加到您的代码中

我在徘徊为什么会这样? (该代码的执行在站点代码中正常工作)

2 个答案:

答案 0 :(得分:2)

计算机科学中存在一个无法解决的问题,称为The Halting Problem

简而言之,这意味着计算机无法查看一段代码,并确定它是否会进入无限循环或在某个时间结束。但是,他们可以对此进行一些猜测并警告您,如果他们发现任何可能危险的话。

可能会。

这是其中一个案例。系统警告你,你必须说"是的,是的,我听说过你。无论如何都要这样做。" [*]

[*]当然,这是为了让我们为星际迷航宇宙做好准备,我们会禁止一切安全,以挽救这一天。

答案 1 :(得分:1)

提示,提醒,确认

这些JS函数是同步的,这意味着浏览器将停止执行任何操作并保持/等待用户响应。由于您还可以通过检查先前提示的结果再次提示来创建无限循环,因此它会抛出该消息。

此无限循环将使浏览器无响应