ps:此處講的是浏覽器端的!
1.浏覽器:
- JavaScript執行線程:負責執行js代碼
- UI線程:負責UI展示
- JavaScript事件循環線程:專門負責JavaScript事件管理
ps:JavaScript執行線程和UI線程是互斥的,故在浏覽器端的JavaScript執行引擎是單線程。JavaScript中的代碼都是排隊執行,不會同步執行多個任務。
2.JavaScript中的任務分為同步任務和異步任務。
同步任務:任務直接交給主線程去執行,執行完即退出。
異步任務:任務交給主線程執行,遇到些情況于是就退出主線程,主線程繼續執行後續的任務。當其準備好了又回來交給主線程去執行。

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