for(let i=0;i<5;i++){
setTimeout(() => {
alert(i);
// console.log(i);
}, 0);
}
代码如上,在chrome,safari等浏览器中都尝试过,会导致console.log代码执行顺序混乱,网上也去查了好多解释的,但是经测试都无法改变顺序混乱的问题。但是同样的代码在火狐却没有任何问题。
现在有几个疑问:
- alert阻塞线程会导致事件队列中的函数顺序发生错乱?
- 浏览器alert的运行机制?