前端面试高频考点—事件循环Event loop

目录

事件循环

执行步骤

概念讲解

主线程

[微任务(micro task)](#微任务(micro task))

[宏任务(macro task)](#宏任务(macro task))

[Event Loop经典例题](#Event Loop经典例题)

这段代码的执行结果是什么?

正确答案:

具体流程:


事件循环

主线程从"任务队列"中读取执行事件,这个过程是循环不断的,这个机制被称为事件循环。

++(JS的运行机制就是事件循环!)++

执行步骤

主线程任务------>微任务------>宏任务 如果宏任务里还有微任就继续执行宏任务里的微任务,如果宏任务中的微任务中还有宏任务就在依次进行

同步的任务没有优先级之分,异步执行有优先级,先执行微任务( microtask 队列),再执行宏任务( macro task 队列),同级别按顺序(先微任务后宏任务)

概念讲解

主线程

所有的同步任务都是在主线程里执行的,异步任务可能会在macrotask或者microtask里面

微任务(micro task)

  • promise
  • async
  • await
  • process.nextTick(node)
  • mutationObserver(html5新特性)

宏任务(macro task)

  • script(整体代码)
  • setTimeout
  • setInterval
  • setImmediate
  • I/O
  • UI render

Event Loop经典例题

这段代码的执行结果是什么?

javascript 复制代码
console.log('1')

setTimeout(function callback(){
	console.log('2')
}, 1000)

new Promise((resolve, reject) => {
    console.log('3')
    resolve()
})
.then(res => {
    console.log('4');
})

console.log('5')

正确答案:

1,3,5,2,4

具体流程:

参考文章:

一看就懂的事件循环机制(event loop) - 掘金 (juejin.cn)

到底什么是Event Loop?那就来了解一下JavaScript分别在浏览器和Node环境下的运行机制吧-CSDN博客

相关推荐
阿珊和她的猫23 分钟前
v-scale-scree: 根据屏幕尺寸缩放内容
开发语言·前端·javascript
PAK向日葵2 小时前
【算法导论】PDD 0817笔试题题解
算法·面试
加班是不可能的,除非双倍日工资5 小时前
css预编译器实现星空背景图
前端·css·vue3
wyiyiyi5 小时前
【Web后端】Django、flask及其场景——以构建系统原型为例
前端·数据库·后端·python·django·flask
gnip6 小时前
vite和webpack打包结构控制
前端·javascript
excel6 小时前
在二维 Canvas 中模拟三角形绕 X、Y 轴旋转
前端
阿华的代码王国6 小时前
【Android】RecyclerView复用CheckBox的异常状态
android·xml·java·前端·后端
一条上岸小咸鱼6 小时前
Kotlin 基本数据类型(三):Booleans、Characters
android·前端·kotlin
Jimmy6 小时前
AI 代理是什么,其有助于我们实现更智能编程
前端·后端·ai编程
ZXT7 小时前
promise & async await总结
前端