js單執行緒,事件迴圈,微任務巨集任務

2021-10-14 17:48:07 字數 591 閱讀 4873

js單執行緒

js是單執行緒的語言,所謂「單執行緒」就是一根筋,對於拿到的程式,一行一行的執行,直到上面的執行為完成,只能做這一件事

## 事件迴圈:

event loop(事件迴圈)中,每一次迴圈稱為 tick, 每一次tick的任務如下:

執行棧選擇最先進入佇列的巨集任務(通常是script整體**),如果有則執行

檢查是否存在 microtask,如果存在則不停的執行,直至清空 microtask 佇列

更新render(每一次事件迴圈,瀏覽器都可能會去更新渲染)

重複以上步驟

微任務,巨集任務

從上圖我們可以看出:

1.將所有任務看成兩個佇列:執行佇列與事件佇列

2.執行佇列是同步的,事件佇列是非同步的,巨集任務放入事件列表,微任務放入執行佇列之後事件佇列之前

3.當執行完同步**之後,就會執行位於執行列表之後的微任務,然後在執行事件列表種的巨集任務

js單執行緒,事件迴圈,微任務巨集任務。

什麼是巨集任務和微任務?巨集任務包括 settimeout setinterval ajax dom事件 微任務 promise async await 微任務比巨集任務的執行時間要早。非同步和單執行緒 非同步和單執行緒是相輔相成的,js是一門單執行緒指令碼語言,所以需要非同步來輔助。非同步和同步的...

js單執行緒,事件迴圈,微任務巨集任務

巨集任務包括 settimeout setinterval ajax dom事件 微任務 promise async await 微任務比巨集任務的執行時間要早 非同步和單執行緒是相輔相成的,js是一門單執行緒指令碼語言,所以需要非同步來輔助 非同步不會阻塞程式的執行,同步會阻塞程式的執行 定時任務...

js 事件迴圈 巨集任務 微任務

console.log 1 settimeout function then function new promise function resolve then function settimeout function then function 先分析 的執行步驟 1 從上向下執行 consol...