JS引擎的執行機制

2021-08-26 23:54:44 字數 551 閱讀 7793

1.js是單執行緒語言

2.js的執行機制是event loop。

一。單執行緒。非同步執行。

js 單執行緒的非同步執行是通過事件迴圈(event loop)。event loop執行順序:

1.首先判斷js同步還是非同步,同步進主程序,非同步進event table.

2.非同步任務在event table中註冊函式,當滿足觸發條件後,被推入event queue

3.同步任務進入主線程後一直執行,直到主線程空閒時,才會去event queue中檢視是否有可執行的非同步任務,如果有就把她拉進主程序。

按照同步非同步劃分不是最準確的,準確的劃分方式是這樣的:

巨集任務:script,settimeout,setinterval 

微任務:promise, process, necttick

這樣就產生了乙個新的執行順序,如下:

1.執行乙個巨集任務,過程中如果遇到微任務,就將其放到微任務的「事件佇列」裡

2.當前巨集任務執行完成後,會檢視微任務的「事件佇列」,並將裡面的 全部微任務依次執行完。

3.重複上面兩個步驟。

JS 引擎的執行機制

首先需明白兩點 js是單執行緒語言js的 event loop是js 的執行機制。深入了解 js的執行,就等於深入了解 js裡的 event loop 1 js為什麼是單執行緒的?js最初被設計用在瀏覽器中,那麼想象一下,如果瀏覽器中的js是多執行緒的。場景描述 那麼現在有 2個程序,process...

關於js引擎的執行機制

1.js是單執行緒的 2.js的event loop 是js的執行機制 1 js裡面的一種分類方式就是將 分為 同步 和非同步 1同步 同步 就是從從開始到結束,遇到 就立即執行的就叫做同步 2非同步 沒有立即執行,而是延遲了一會兒,或者說是滿足一定條件後才去執行的,這類 叫做非同步 定時任務,網路...

JS執行機制

js是單執行緒的,settimeout和setinterval是非同步任務,要掛起,不先執行,等同步任務完成之後,再去處理非同步任務 console.log 1 settimeout function 0 console.log 3 console.log 4 輸出 1 3 4 2console.l...