慕课前端售1299元的面试题【第一阶段】JS-day02


上一篇慕课css面试题,链接地址
下一篇慕课JS面试题,链接地址

1. js面试题

1. event loop事件循环机制

请添加图片描述
在这里插入图片描述

案例
在这里插入图片描述

  • console.log(‘Hi‘)先在 2.Call Stack中执行, 执行完清空,再走1.Browser console。输出 Hi
    在这里插入图片描述
  • setTimeout ( function cb1() ) ;先在 2.Call Stack中执行,进入 3.Web APIs,在此停留5s。
  • 并清除掉 2.Call Stack中的 setTimeout cb1。这里就执行结束了。
  • 往下执行console.log(‘Bye’)

-console.log('Bye‘)先在 2.Call Stack中执行, 执行完清空,再走 1.Browser console。输出 Bye

在这里插入图片描述

  • 到 Bye输出完,可执行代码全部执行完毕,2.Call Stack清空。此时 Timer cb1 还在 3.Web APIs中 5s还没到。
  • 此时启动Event loop 机制,同步代码执行完毕,2.Call Stack 空了。

解释:暂时没有代码可被推入Call Stack中,会立即启动Event loop机制,浏览器内核启动的事件循环机制。此时Event loop 会一遍一遍从(异步回调)Callback Queue中找,有没有函数了,有函数就拿过来。拿过来就推入 Call Stack中执行。

  • 一直等到 3,Web Apis中 Timer cb1定时器结束,推入4.Callback Queue中,并清除Web Apis的 Timer cb1。
  • 此时Event loop 发现 回调队列 Queue中有一个可执行函数,并推入 2.Call Stack中,Queue清除掉 cb1函数。
  • Call Stack中 现有 cb1函数,执行里面的 log.(‘cb1’) 并推入1.Browser console,控制台打印 cb1。并清除Call Stack中的log('cb1‘)
  • Call Stack 会在从cb1函数中寻找可执行的log,此时cb1函数中无任何可执行内容,清除掉cb1函数方法。

到此为止,整段代码执行完毕

浏览器控制台输出
Hi Bye cb1

在这里插入图片描述

在这里插入图片描述


2.Promise面试题

1.promise 的三种状态是什么?状态和变化

在这里插入图片描述

在这里插入图片描述

案例
在这里插入图片描述
在这里插入图片描述


2.then和cath改变状态

在这里插入图片描述

3. 请解答以下promise面试题

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


3. 手写promise 加载图片

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述


4. async/await 和 promise的关系?

在这里插入图片描述
在这里插入图片描述

  • 案例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  • 看如下题
    在这里插入图片描述
    const c 上 await如果要捕获错误可以使用 try catch捕获

在这里插入图片描述


5. 异步本质 ,看如下async/await顺序题?

在这里插入图片描述

  • 答案
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

3. 讲解宏任务 macroTask 和微任务 microTask ?

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

姜香小白鱼

如今生活困难,望支持一下,感谢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值