1

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

var ask = prompt("test");

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

我收到这种错误:

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

我在徘徊为什么会这样?(该代码的执行在站点代码中运行良好)

4

2 回答 2

2

计算机科学中有一个无法解决的问题,称为停机问题

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

不是。 _ 可能。

这是其中一种情况。系统正在警告您,您必须说“是的,是的,我听到了。无论如何都要这样做。”[*]

[*] 这当然是为了让我们为星际迷航宇宙做好准备,在这个宇宙中,我们禁用一切安全措施以挽救局面。

于 2014-05-03T18:55:42.700 回答
1

提示,警告,确认

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

这个无限循环将使浏览器无响应

于 2014-05-03T18:57:36.313 回答