JavaScript 程式執行原理:hw1 Event Loop


Posted by backas36 on 2021-08-16

hw1:Event Loop

在 JavaScript 裡面,一個很重要的概念就是 Event Loop,是 JavaScript 底層在執行程式碼時的運作方式。請你說明以下程式碼會輸出什麼,以及盡可能詳細地解釋原因。

console.log(1)
setTimeout(() => {
  console.log(2)
}, 0)
console.log(3)
setTimeout(() => {
  console.log(4)
}, 0)
console.log(5)

Answer :

執行程式 => console.log(1) => 遇到 setTimout ,請 web API 幫我們設定計時器,0 秒後,把 ()=>{console.log(2)} 放到 callback queue 待命

繼續執行程式 => console.log(3) => 遇到 setTimout ,請 web API 幫我們設定計時器,0 秒後,把 ()=>{console.log(4)} 放到 callback queue 待命

繼續執行程式 => console.log(5)

將最後一行 console.log(5) 執行完後 , 此時主程式已經沒有程式可以跑了。 就會看看 callback queue 有沒有工作要執行!

還有兩個剛剛請 web API 幫忙設定計時器的 function 要執行 => 執行 callback queue 第一個 function,()=> {console.log(2)} => 結束後執行第二個 function

這樣就可以知道答案是 1 3 5 2 4。


#js #Event Loop #程式導師實驗計畫第五期







Related Posts

Retro是什麼?來設計一場Retro吧

Retro是什麼?來設計一場Retro吧

七天學會 swift - 在背景中下載資料並存檔 Day7

七天學會 swift - 在背景中下載資料並存檔 Day7

Math.(floor/ceil/round) in JavaScript

Math.(floor/ceil/round) in JavaScript


Comments