Web前端JS面试题及详细答案.docxVIP

  • 1
  • 0
  • 约1.82万字
  • 约 20页
  • 2026-06-09 发布于河北
  • 举报

Web前端JS面试题及详细答案

一、基础必考题(考察核心基础,高频出现)

1.请解释var、let、const的区别,结合实际开发说一下为什么现在很少用var?

答案:

三者核心区别集中在作用域、提升行为、可修改性三个方面,结合开发场景具体说明:

1.作用域:var是函数级作用域,只在当前函数内有效,if/for等代码块不会形成独立作用域;let和const是块级作用域,代码块({}包裹)内定义的变量,只在块内有效。

2.变量提升:var会存在变量提升,即变量可以在声明前使用(值为undefined);let和const不存在变量提升,声明前使用会报错(暂时性死区)。

3.可修改性:var和let声明的变量可以重新赋值;const声明的变量不能重新赋值(但如果是引用类型,内部属性可以修改,比如constobj={a:1},obj.a=2是允许的)。

实际开发不用var的原因:一是var没有块级作用域,容易造成变量污染(比如for循环中用var声明i,循环结束后i仍能被外部访问,容易引发bug);二是变量提升容易导致逻辑混乱,比如声明顺序错误引发undefined问题;三是let和const的块级作用域的特性,能更好地控制变量的作用范围,减少意外报错,符合模块化开发的需求。

举例:for(vari=0;i3;i++){setTimeout(()=conso

文档评论(0)

1亿VIP精品文档

相关文档