- 2
- 0
- 约4.36千字
- 约 7页
- 2026-08-01 发布于河北
- 举报
前端JS核心语法高频面试题(真实面试版+详细答案)
一、基础语法与变量核心
1、var/let/const的区别?各自适用场景?(必考)
参考答案:
三者核心区别集中在变量提升、作用域、重复声明、值修改四个点:
1)var
-函数级作用域,没有块级作用域(if、for块内声明的变量外部可访问)
-存在变量提升,声明前访问会返回undefined
-允许重复声明同一变量,不会报错,容易造成变量污染
-挂载到window全局对象
场景:现在基本不用,仅老项目遗留代码会存在
2)let
-块级作用域({}内部生效)
-存在暂时性死区,声明前访问会直接报错
-不允许重复声明
-不挂载全局window
场景:变量值会被重新修改、迭代,比如循环计数器、状态变量
3)const
-和let一致,块级作用域、暂时性死区、不可重复声明
-声明时必须赋值,且基础类型值不可修改,引用类型地址不可修改
-数组、对象用const声明可以修改内部属性/元素,只是不能重新赋值
场景:常量、引用数据类型(对象、数组、函数),开发中优先使用
面试加分总结:开发原则:默认const,需要改值再用let,坚决不用var。
2、什么是暂时性死区?产生原因?
参考答案:
ES6中,用let、const声明的变量,在代码块开始到变量声明语句之前的区域,就是暂时
原创力文档

文档评论(0)