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

2021-10-14 18:15:06 字數 609 閱讀 5909

什麼是巨集任務和微任務?

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

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

非同步和單執行緒

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

非同步和同步的區別:

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

同步會阻塞程式的執行。

前端使用非同步的場景:

定時任務:settimeout,setinverval

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

事件繫結

事件迴圈:

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

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

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

執行順序:

一般情況下先執行同步**,然後在執行微任務,最後執行巨集任務。

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