前端面试-
事件循环机制1.概念
运行时对js脚本的调度方式就叫做事件循环
主线程事件执行完毕后从任务队列中读取异步事件,并将其放入调用栈中执行,
这个过程循环不断,所以整个这种运行机制被称为Event Loop(事件循环)
用途:
提供了异步编程的可能性。
1.改善因js单线程的特性而导致的没必要的程序阻塞问题(事件协调/用户脚本/
渲染/网络。。。)
事件协调:定时器 promise
用户交互:click onScroll
脚本:js脚本执行
渲染:解析DOM / css
网络:HTTP请求
核心运作流程
定时器触发线程
HTTP异步线程
EventLoop处理线程
事件循环机制
1.事件循环机制从宏任务开始
2.第一个执行的宏任务是一个匿名函数,该函数内部是当前js整体代码
3.将任务放置于主线程上按从上到下的顺序依次进入调用栈执行
同步任务压栈直接执行,然后弹栈
异步任务压栈,将任务的函数体添加至任务队列,然后弹栈
4.当主线程上的任务都执行完毕,按照先进先出的原则读取任务队列
中科执行的任务,将出队列的任务放置到主线程上
(一)优先微任务,例如promise/mutationObserver
(二)其次执行消息队列,例如setTimeout/setInterval
5.无论微任务宏任务,其内部肯定也存在同步任务和异步任务
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页:
[1]