ES6 高频面试题及详细答案(实战版).docxVIP

  • 1
  • 0
  • 约4.22千字
  • 约 6页
  • 2026-09-20 发布于河北
  • 举报

ES6 高频面试题及详细答案(实战版).docx

ES6高频面试题及详细答案(实战版)

1.说说var、let、const的区别?

这是ES6最基础也是最高频的问题,核心区别集中在变量提升、作用域、重复声明、赋值规则四个方面:

1)变量提升

var存在变量提升,声明的变量可以在定义前访问,值为undefined;let、const不存在变量提升,在声明前访问变量会直接报错,也就是常说的暂时性死区。

2)作用域

var只有全局作用域和函数作用域,没有块级作用域,会导致for循环变量泄露等问题;let、const拥有块级作用域,大括号包裹的区域就是独立作用域,变量仅在块内有效,解决了变量污染问题。

3)重复声明

var允许重复声明同一个变量,后声明的会覆盖前一个;let、const不允许在同一作用域内重复声明同名变量,直接报错。

4)赋值规则

var、let声明的是变量,值可以随意修改;const声明的是常量,一旦初始化后不可修改基础数据类型的值,如果是引用类型,只能保证指针地址不变,对象/数组内部的属性、元素可以正常修改。

总结使用场景:优先用const,只有后续需要修改变量值时,才使用let,日常开发完全摒弃var。

2.什么是暂时性死区?

ES6规定,代码块中一旦出现let、const声明变量,这个区块就会对该变量形成封闭作用域,在变量声明之前,该变量都是不可访问的,这段区间就是暂时性死

文档评论(0)

1亿VIP精品文档

相关文档