事件循环(event Loop)
JS的运行机制:EventLoop(事件循环)
事件循环中的宏任务队列和微任务队列
Event Loop执行顺序:
首先执行同步代码,这属于宏任务
当执行完所有同步代码后,执行栈为空,查询是否有异步代码需要执行
执行完所有微任务
党执行完所有微任务后,如有必要渲染页面
然后开始下一轮EventLoop,执行宏任务中的异步代码
啰嗦版:
因为js是单线程运行的,在代码执行时,
通过将不同函数的执行上下文压入栈中来保证代码的有序执行。
在执行同步代码时,如果遇到异步事件,JS引擎并不会一直等待其返回结果,而是会将这个事件挂起,继续执行栈中的其它任务
当异步事件执行完毕后,再将异步事件对应的回调加入到一个任务队列中等待执行。
任务队列可以分为宏任务队列和微任务队
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
前端面试题 文章被收录于专栏
前端面试的一些常问问题、问题的具体实现(可直接运行)以及底层原理