JS异步-进阶

1.请描述event loop(事件循环、事件轮询)的机制,可画图?

①.js是单线程的,异步要基于回调来实现,event loop(事件循环/事件轮询)就是异步回调的实现原理。

首先我们需要明白js是如何执行的:从前到后,一行一行执行,如果某一行执行报错了,则停止下面代码的执行,先将同步代码执行完毕,再执行异步代码。
在这里插入图片描述
根据上图所示,event loop的执行原理如下:

(1)同步代码,一行一行执行,是放在call stack(调用堆栈)中执行的
(2)遇到异步代码,先记录下在web API中,等待时机(定时、网络请求等)
(3)时机到了,就移动到callback queue(回调队列)中
(4)如果 call stack 为空(即同步代码执行完毕) event loop 开始工作
(5)轮询查找 callback queue, 如有则移动到call stack执行
(6)然后继续轮询查找,直到完成

②.DOM事件 和 event loop
js是单线程的
异步(setTimeout、ajax等)使用回调,是基于event loop的
DOM事件也使用回调,也基于event loop

2.什么是宏任务和微任务,两者有什么区别?
在这里插入图片描述

3.promise有哪三种状态?如何变化
在这里插入图片描述

4.async/await ?
在这里插入图片描述

5、event loop 和 DOM渲染
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值