天天看點

JavaScript-中級:2 函數進階内幕- 1.JavaScript事件循環機制

ps:此處講的是浏覽器端的!

1.浏覽器:

  • JavaScript執行線程:負責執行js代碼
  • UI線程:負責UI展示
  • JavaScript事件循環線程:專門負責JavaScript事件管理

ps:JavaScript執行線程和UI線程是互斥的,故在浏覽器端的JavaScript執行引擎是單線程。JavaScript中的代碼都是排隊執行,不會同步執行多個任務。

2.JavaScript中的任務分為同步任務和異步任務。

同步任務:任務直接交給主線程去執行,執行完即退出。

異步任務:任務交給主線程執行,遇到些情況于是就退出主線程,主線程繼續執行後續的任務。當其準備好了又回來交給主線程去執行。

JavaScript-中級:2 函數進階内幕- 1.JavaScript事件循環機制

3. JavaScript事件循環機制

白話:js主線程依次執行任務,遇到同步任務時,直接就執行完畢,遇到異步任務時,如果異步任務發生情況(比如等待使用者點選按鈕等)就将該異步任務退出隊列,js主線程繼續執行隊列中後續任務。異步任務準備好後,又進入隊列。将準備好的異步任務放回隊列的操作就是由js事件循環線程來做。

JavaScript-中級:2 函數進階内幕- 1.JavaScript事件循環機制

繼續閱讀