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

2021-10-14 18:23:25 字數 654 閱讀 7644

巨集任務包括:settimeout setinterval ajax dom事件 微任務:promise async/await

微任務比巨集任務的執行時間要早

非同步和單執行緒是相輔相成的,js是一門單執行緒指令碼語言,所以需要非同步來輔助

非同步不會阻塞程式的執行, 同步會阻塞程式的執行

定時任務:settimeout,setinverval

網路請求:ajax請求,動態載入

任務列隊和event loop(事件迴圈)

1)所有的同步任務都在主線程上執行,行成乙個執行棧。

2)除了主線程之外,還存在乙個任務列隊,只要非同步任務有了執行結果,就在任務列隊中植入乙個時間標記。

3)主線程完成所有任務(執行棧清空),就會讀取任務列隊,先執行微任務佇列在執行巨集任務佇列。

只要主線程空了,就會讀取任務列隊,這就是js的執行機制,也被稱為 event loop(事件迴圈)。

1.主線程上巨集任務、微任務執行順序

執行順序:主線程 >> 主線程上建立的微任務 >> 主線程上建立的巨集任務

巨集任務中包含微任務

執行順序:主線程 >> 主線程上的巨集任務佇列1 >> 巨集任務佇列1中建立的微任務

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

js單執行緒 js是單執行緒的語言,所謂 單執行緒 就是一根筋,對於拿到的程式,一行一行的執行,直到上面的執行為完成,只能做這一件事 事件迴圈 event loop 事件迴圈 中,每一次迴圈稱為 tick,每一次tick的任務如下 執行棧選擇最先進入佇列的巨集任務 通常是script整體 如果有則執...

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...