这些前端大厂面试题你会做吗?每日10题大厂面试题(五)

简介: 这些前端大厂面试题你会做吗?每日10题大厂面试题(五)

题1(eval)

下面输出的是

答案:105

这道题主要考察:

  • eval: eval会为字符串传递的代码求值。如果它是一个表达式,就像在这种情况下一样,它会计算表达式

题2(yield)

缺少的部分代码是什么

640.png

答案:yield* getMembers(teams[i].members)

这道题主要考察:

  • yield: 为了遍历teams数组中对象的属性members中的每一项,我们需要将teams[i].members传递给Generator函数getMembers。Generator函数返回一个generator对象。为了遍历这个generator对象中的每一项,我们需要使用yield*

题5(变量提升)

下面输出的是

640.png

答案:undefined 和ReferenceError

这道题主要考察:

  • 变量提升:这道题不难,相信大多数同学都可以做出来,这里提出来主要是想说明一个易错的问题,使用let关键词和const关键词声明的变量也会存在变量提升,但与var不同,初始化没有被提升。
  • 关于let的是否存在变量提升,我们可以用下面的例子来验证:

  • let变量如果不存在变量提升 ,console.log(name)就会输出Muyiy,结果却抛出了ReferenceError,那么这很好的说明了,let也存在变量提升,但是它存在一个“暂时死区”,在变量未初始化或赋值前不允许访问
  • 变量的赋值可以分为三个阶段:
  1. 创建变量,在内存中开辟空间
  2. 初始化变量,将变量初始化为undefined
  3. 真正赋值
  • 关于let、var和function:
  1. let的创建过程被提升了,但是初始化没有提升
  2. var的创建和初始化过程都被提升了
  3. function的创建、初始化和赋值都被提升了

题8(import)

下面输出的是

640.png

答案:running sum.js, running index.js, 3

这道题主要考察:

  • import: import命令是编译阶段执行的,在代码运行之前,因此这意味着被导入的模块会先运行,而导入模块的文件会后执行
  • commonJS中require()和import之间不同,使用require(),您可以在运行代码时根据需要加载依赖项,如果我们使用require而不是import,running index.js, running sum.js, 3会被依次打印


目录
相关文章
|
1月前
|
前端开发 JavaScript 网络协议
前端最常见的JS面试题大全
【4月更文挑战第3天】前端最常见的JS面试题大全
|
2月前
|
SQL 存储 Oracle
Oracle 面试题及答案整理,最新面试题
Oracle 面试题及答案整理,最新面试题
81 0
|
2月前
|
消息中间件 存储 负载均衡
RocketMQ 面试题及答案整理,最新面试题
RocketMQ 面试题及答案整理,最新面试题
156 4
|
24天前
|
存储 缓存 安全
兄弟面试了百度,面试题分享一波
兄弟面试了百度,面试题分享一波
38 0
|
2月前
|
SQL 监控 大数据
DataGrip 面试题及答案整理,最新面试题
DataGrip 面试题及答案整理,最新面试题
70 0
|
2月前
|
监控 jenkins 持续交付
Jenkins 面试题及答案整理,最新面试题
Jenkins 面试题及答案整理,最新面试题
144 0
|
2月前
|
存储 开发框架 .NET
C# 面试题及答案整理,最新面试题
C# 面试题及答案整理,最新面试题
45 0
|
2月前
|
存储 安全 API
Swift 面试题及答案整理,最新面试题
Swift 面试题及答案整理,最新面试题
104 0
|
2月前
|
存储 安全 Java
Android 面试题及答案整理,最新面试题
Android 面试题及答案整理,最新面试题
93 2
|
2月前
|
存储 关系型数据库 MySQL
MySQL 面试题及答案整理,最新面试题
MySQL 面试题及答案整理,最新面试题
99 0