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