滴滴打车前端JS基础面试题及详细答案(真实高频).docxVIP

  • 0
  • 0
  • 约6.1千字
  • 约 9页
  • 2026-11-02 发布于河北
  • 举报

滴滴打车前端JS基础面试题及详细答案(真实高频).docx

滴滴打车前端JS基础面试题及详细答案(真实高频)

一、JS基础核心概念(滴滴一面必问)

1、var、let、const的区别?实际项目中怎么选择?

参考答案:

三者核心区别集中在作用域、变量提升、重复声明、赋值特性四个维度:

1.var:函数级作用域,存在变量提升,允许重复声明、可随意赋值,无暂时性死区。全局声明会挂载到window对象。

2.let:块级作用域(if/for/{}均生效),存在变量提升但有暂时性死区,禁止重复声明,可重新赋值。

3.const:块级作用域,有暂时性死区,禁止重复声明,声明后不可修改基础类型值;引用类型可修改内部属性(仅锁定栈内存地址)。

项目实战选择原则(滴滴业务规范):

优先使用const,仅变量需要重新赋值时用let,彻底废弃var。var的函数作用域和变量提升极易造成全局变量污染、循环变量泄露等业务bug。

2、什么是暂时性死区?产生的原因是什么?

参考答案:

ES6中,块级作用域内用let/const声明的变量,在代码执行到声明语句之前,无法被访问、赋值,这个时间段就是暂时性死区。

产生原因:let/const依旧存在变量提升,JS引擎会提前扫描代码、注册变量,但不会初始化默认值。在声明语句执行前,变量处于未初始化状态,访问会直接报错Cannotaccessxxxbeforeinitializ

文档评论(0)

1亿VIP精品文档

相关文档