alert阻塞线程导致事件队列中的函数执行顺序混乱的疑问

for(let i=0;i<5;i++){
    setTimeout(() => {
      alert(i);
      // console.log(i);
    }, 0);
}

代码如上,在chrome,safari等浏览器中都尝试过,会导致console.log代码执行顺序混乱,网上也去查了好多解释的,但是经测试都无法改变顺序混乱的问题。但是同样的代码在火狐却没有任何问题。
现在有几个疑问:

  1. alert阻塞线程会导致事件队列中的函数顺序发生错乱?
  2. 浏览器alert的运行机制?
阅读 1.1k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题