- 0
- 0
- 约4.82千字
- 约 7页
- 2026-07-08 发布于河北
- 举报
前端高频易遗忘面试题(附直白详细答案)
一、JavaScript模块(最易遗忘板块)
1、var/let/const的区别?很多人只记皮毛
标准答案(直白版):
作用域:var只有全局作用域、函数作用域,没有块级作用域;let、const支持块级作用域(大括号{}内有效),for循环、if判断里声明的变量外部访问不到
变量提升:三者都存在变量提升,但表现不一样。var声明的变量会提升并初始化为undefined;let/const提升后不初始化,形成暂时性死区,在声明前调用直接报错
重复声明:var允许在同一作用域重复声明同一个变量;let、const直接禁止重复声明
赋值规则:var、let是可变变量,可以随意修改值;const是常量,简单数据类型不能改值,引用数据类型(对象/数组)可以修改内部属性,不能直接重新赋值
补充面试加分点:日常开发直接弃用var,统一用let/const;默认优先用const,只有变量后续需要修改时再用let。
2、什么是暂时性死区?为什么会出现?
标准答案(直白版):
ES6为了规避var变量提升带来的bug,给let、const新增的规则。在代码执行到变量声明语句之前,该变量已经被提升,但无法被访问,这个时间段就叫暂时性死区。
简单说:大括号范围内,变量声明之前,不能使用该变量,用了直接报错。
出现原因:解决var的弊
原创力文档

文档评论(0)