JavaScriptのイベントループ、説明できる?
コールスタック、タスクとマイクロタスク、実行順の問題まで。イベントループの理解を確認します。
この問題のねらい
「setTimeoutの0ミリ秒でもすぐ実行されない理由」を、イベントループの仕組みから説明できるかを確かめます。
はじめる前に
この問題では、すぐに正解は表示しません。まず自分の言葉で回答してみてください。
最後まで回答すると、問題とあなたの回答をまとめてコピーできます。普段使っているAIチャットに貼り付けると、理解度をチェックしてもらえます。
こんな問題が出ます
- Q1
JavaScriptは「シングルスレッド」と言われます。 それなのに、通信やタイマーを待ちながら他の処理を進められるのはなぜですか?
- Q2
次のコードを実行すると、どの順番で出力されますか? 理由も説明してください。
- Q3
「タスク(マクロタスク)」と「マイクロタスク」の違いを説明してください。 それぞれの例も挙げてください。
- Q4
ボタンを押すと重い計算(数秒かかるループ)を実行するページで、計算中は画面が固まり、クリックにも反応しなくなりました。 なぜ起きるのか、どう改善できるかを説明してください。
- Q5
次の説明の誤りを指摘してください。 「setTimeout(fn, 0) と書けば、fn はちょうど0ミリ秒後、つまり直後に必ず実行される」