JS的運行機制整理

1 js引擎是單線程執行js代碼,同步任務在棧中按順序執行,如果某一個同步任務沒有執
行完畢,則後面的代碼將會處於阻塞等待狀態.

2 棧中若執行遇到了異步任務(如定時器、異步Ajax、回調事件),會將此異步任務通過瀏覽器對應的工作線程來處理。

3 工作線程中的所有異步任務均會按照設定的時間進行等待,時間一到或者達到觸發條件則會被加入任務隊列。如果是異步ajax,則等待其返回結果後在加入到任務隊列

4 當棧中爲空時,會通過事件循環來一個個獲取任務隊列中的任務放到棧中進行逐個運
行。即棧中的同步任務總是在讀取 異步任務 之前執行

5 定時器設置的時間不一定按照設定的時間進行執行,這得取決於棧中同步任務耗費的
時間。因爲棧中執行的同步任務如果耗費很長時間,則會影響到異步任務回調函數的

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章