我们知道alert()是阻塞式的,但是一下代码执行顺序有问题
执行顺序有问题
(()=>{ for(let i = 0; i < 5; i++){ setTimeout(() => alert(i), 1000); } })()
结果: 0,3,2,1,4
执行顺序没问题
(()=>{ for(let i = 0; i < 5; i++){ setTimeout(() => console.log(i), 1000); } })()
结果:0,1,2,3,4
这是为什么呢?
欢迎选择我的课程,让我们一起见证您的进步~~
setTimeout の動作原理を確認することをお勧めします
アラート 0 がオンのときに [OK] をクリックしない場合は、5 秒待ってから (スレッドがアイドル状態の場合は 10 秒以上待つ必要がある場合があります)、もう一度クリックすると、順序が正常であることがわかります
その理由は、プロセスが占有されている場合、プロセスがアイドル状態の場合、今回はスキップされ、次回実行されるためです。
リンクを投稿すると、それを読んだ後に啓発されるはずです
setTimeout の動作原理を確認することをお勧めします
アラート 0 がオンのときに [OK] をクリックしない場合は、5 秒待ってから (スレッドがアイドル状態の場合は 10 秒以上待つ必要がある場合があります)、もう一度クリックすると、順序が正常であることがわかります
その理由は、プロセスが占有されている場合、プロセスがアイドル状態の場合、今回はスキップされ、次回実行されるためです。
リンクを投稿すると、それを読んだ後に啓発されるはずです