本文へ移動

JavaScript

JavaScriptのイベントループ、説明できる?

コールスタック、タスクとマイクロタスク、実行順の問題まで。イベントループの理解を確認します。

5問約7分応用

この問題のねらい

「setTimeoutの0ミリ秒でもすぐ実行されない理由」を、イベントループの仕組みから説明できるかを確かめます。

はじめる前に

この問題では、すぐに正解は表示しません。まず自分の言葉で回答してみてください。

最後まで回答すると、問題とあなたの回答をまとめてコピーできます。普段使っているAIチャットに貼り付けると、理解度をチェックしてもらえます。

こんな問題が出ます

  1. Q1

    JavaScriptは「シングルスレッド」と言われます。 それなのに、通信やタイマーを待ちながら他の処理を進められるのはなぜですか?

  2. Q2

    次のコードを実行すると、どの順番で出力されますか? 理由も説明してください。

  3. Q3

    「タスク(マクロタスク)」と「マイクロタスク」の違いを説明してください。 それぞれの例も挙げてください。

  4. Q4

    ボタンを押すと重い計算(数秒かかるループ)を実行するページで、計算中は画面が固まり、クリックにも反応しなくなりました。 なぜ起きるのか、どう改善できるかを説明してください。

  5. Q5

    次の説明の誤りを指摘してください。 「setTimeout(fn, 0) と書けば、fn はちょうど0ミリ秒後、つまり直後に必ず実行される」