前端每日一题#13

前端人

共 1245字,需浏览 3分钟

 · 2021-03-13


关注公众号 前端人,回复“加群

添加无广告优质学习群

昨日题目

请问以下代码输出什么,为什么?

try {
    (async function(
       a().b().c() 
      }
   )()
catch (e) {
  console.log(`执行出错:${e.message}`)
}

A、执行出错:a is not defined

B、(in promise) a is not defined

C、a is not defined

解析:

选B

这道题目主要三个考点:

  • 执行一个没有定义的函数会发生什么
  • 在 async 内部发生报错会发生什么
  • try catch 只能捕获同步代码的异常 因此答案就明了了。
  • 因为我们执行了一个未定义的函数,所以会报错 a is not defind,又因为是在 async 中,所以报错信息会显示 in promise。最后 try cathch 只能捕获同步代码的抛错,因为是 async,所以走不到 catch 里面。

如果我们把代码这样改一下就可以了:

try {
    await (async function({ a().b().c() })()
catch (e) {
    console.log(`执行出错:${e.message}`)
}



日题目


关于 this 的工作原理,下面 4 种情况的描述哪一个是错误的?( )

A、在全局范围内,this指向全局对象(浏览器下指window

B、对象函数调用时,this指向当前对象

C、全局函数调用时,this指向全局函数

D、使用new实例化对象时,this指向新创建的对象


玩法介绍

评论区给出你的答案,并且帮忙点个在看每天的每日一题答案由下一天给出,欢迎参与每日一题,一周连续答对5题者,周六鬼哥抽取送爱奇艺会员一个

题库小程序

最后

大家记得关注公众号后,置顶公众号,才能第一时间接收前端每日一题的文章推送

  • 回复资料包领取我整理的进阶资料包
  • 回复加群,加入前端进阶群
  • console.log("点赞===看===置顶公众号")
  • Bug离我更远了,下班离我更近了



浏览 11
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报