javascript - 为什么 alert() 函数的行为如此奇怪?
问题描述
如果我跑
for (let i = 0; i < 1000; i++) {
console.log(i)
}
window.alert('Hello World!');
然后在 for 循环完成之前弹出警告框。
但是,如果我不使用 for 循环,只需编写 console.log(1)..console.log(1000) 语句,然后放入 window.alert('Hello World')。它一直等到所有 console.log 函数都被执行。
console.log(1)
console.log(2)
.
.
.
console.log(1000)
console.log('Hello World');
放置 console.log 语句的两种方式都做同样的事情。但是警报框的行为在每种情况下都是不同的。
为什么会这样?如果警报是 Web API 的一部分,它不应该被推送到消息队列中,然后在堆栈变空时仅(通过事件循环)推送到调用堆栈吗?为什么在第一种情况下警报出现在 for 循环的中间?
解决方案
推荐阅读
- r - R:如何在R中的第一个点之前提取字符串
- database - 如何从旧安装访问 MongoDB 数据?
- android - Android - 如何为 TextView 中的不同字符添加不同的间距?
- java - 如何返回未使用的空间数组?
- email - 如何代表来自不同域的其他人发送电子邮件
- angularjs - 使用angularjs提交表单时如何动态获取表格格式的数据
- mysql - Mysql 时差不起作用 MySQL 客户端版本:3.23.49
- c# - 如何从 TextBox 中获取 txt 并将其转换为数学函数?
- css - 如何设置此 div 以显示内联?
- javascript - jQuery - jquery-3.4.1.min.js:2 Uncaught ReferenceError: filter is not defined