千锋教育web前端高频面试题视频教程,kerwin大话前端面试秘籍(附答案)

什么是事件循环?
事件循环是js的执行机制
浏览器有许多线程,其中有两个是js引擎线程和,GUI渲染进程,这两个线程互斥其中一个运行另一个就挂起,这样做是要等js代码解析完成再去渲染界面否则就会出错。
而js引擎线程就是基于事件循环来进行的
1. 执行同步任务,在主线程上,每执行一次就将同步任务推入执行站中
2. 遇到异步任务,js就把他交给浏览器的webAPI去处理,处理完成将结果推入异步任务队列。
3. 当执行栈中所有同步任务执行完成后,系统就会去执行异步队列里的异步任务,因为微任务的优先级高于宏任务,所以先执行微任务再去执行宏任务。
4. 每执行完一个宏任务还会去检查是否有新的微任务,如果没有才会继续执行宏任务。
5. 主线程不断重复上面三步,因此叫事件循环