1. 程式人生 > >深度解析JavaScript事件迴圈--EventLoop

深度解析JavaScript事件迴圈--EventLoop

為什麼有事件迴圈?
JavaScript是單執行緒語言,所以會產生非同步。在執行任務的時候,先檢查事件佇列是否為空,不為空的話將任務放到執行棧執行,執行棧執行過後為空就會又回到事件佇列去判斷事件佇列是否為空,這樣就形成了事件迴圈的簡單機制。

**棧:先進後出
佇列:先進先出**

**執行棧:可以理解為js的單執行緒執行(正在做的事情)唯一的
事件佇列:js的todolist(後面要做的事情)可以有多個**
當執行棧為空的時候就會去看看事件佇列中還有沒有要繼續做的事情。

巨集任務:setTimeOut
微任務:promise
二者都是非同步事件,先微任務後巨集任務。