千鋒教育web前端高頻面試題視頻教程,kerwin大話前端面試秘籍(附答案)

什么是事件循環(huán)?
事件循環(huán)是js的執(zhí)行機制
瀏覽器有許多線程,其中有兩個是js引擎線程和,GUI渲染進程,這兩個線程互斥其中一個運行另一個就掛起,這樣做是要等js代碼解析完成再去渲染界面否則就會出錯。
而js引擎線程就是基于事件循環(huán)來進行的
1.????執(zhí)行同步任務(wù),在主線程上,每執(zhí)行一次就將同步任務(wù)推入執(zhí)行站中
2.????遇到異步任務(wù),js就把他交給瀏覽器的webAPI去處理,處理完成將結(jié)果推入異步任務(wù)隊列。
3.????當(dāng)執(zhí)行棧中所有同步任務(wù)執(zhí)行完成后,系統(tǒng)就會去執(zhí)行異步隊列里的異步任務(wù),因為微任務(wù)的優(yōu)先級高于宏任務(wù),所以先執(zhí)行微任務(wù)再去執(zhí)行宏任務(wù)。
4.????每執(zhí)行完一個宏任務(wù)還會去檢查是否有新的微任務(wù),如果沒有才會繼續(xù)執(zhí)行宏任務(wù)。
5.????主線程不斷重復(fù)上面三步,因此叫事件循環(huán)
標(biāo)簽: