Javascript 为什么';t在文档被修改之前';什么是不可能的?

Javascript 为什么';t在文档被修改之前';什么是不可能的?,javascript,while-loop,Javascript,While Loop,while(提示()!=“退出”){ 文件。编写(“测试”); }javascript while循环将在运行文档之前检查条件(提示符()!=“退出”)这就是为什么您看不到文档被修改的原因。在提示符中键入内容并单击enter之前,它不会执行循环体: while (prompt() !== "quit") { document.write("test "); //waiting for prompt() } 因为prompt的工作方式——它会在关闭页面之前阻止页面上的所有其他内容。因为您

while(提示()!=“退出”){
文件。编写(“测试”);

}
javascript while循环将在运行
文档之前检查条件
(提示符()!=“退出”)
这就是为什么您看不到文档被修改的原因。

在提示符中键入内容并单击enter之前,它不会执行循环体:

while (prompt() !== "quit") {
    document.write("test "); //waiting for prompt()
}

因为
prompt
的工作方式——它会在关闭页面之前阻止页面上的所有其他内容。因为您在条件语句中调用它,所以在代码决定它是否进入循环之前,必须对它进行求值。它无法预测您是否将键入“退出”
。这就是为什么它会先等待您的输入


发件人:

对话框是模态窗口;它们阻止用户访问程序界面的其余部分,直到对话框关闭。因此,您不应过度使用任何创建对话框(或模式窗口)的函数


刷新警报框后面的视图似乎与浏览器相关


有些人会在两个警报框之间更新它(如Ubuntu上的我的Firefox),但您可能会等待警报框关闭后再生成新的框架视图。

您所说的
修改文档是什么意思?它只打印
test
,直到您键入
quit
。这似乎与浏览器有关。在FireFox/ubuntu上,你有一个显示在警告框后面的
测试。@Blag在Chrome/Mac和FireFox/Mac上也有。请回答我的问题,这样我才能接受你的回答。@Yassine谢谢!很高兴知道Safari会出现这种行为……即使在我键入某些内容(而不是“退出”)之后,“测试”也不会被写入,直到我键入“退出”。嗯,在我的Chrome/Ubuntu(也是Chrome/Debian)上,它会在每次输入非“退出”的内容时写入“测试”,正如您所期望的那样。