了解(熟悉)ES6新特性,那么你能说说let 、var、 const 的区别嘛?
let 、var、 const 的区别
从下面这三个方面进行阐述。
- 变量提升方面
var 声明的变量,存在变量提升,即变量可以在声明之前调用,值为undefined
let和const不存在变量提升的问题(注意这个“问题”后缀,其实是有变量提升的,只不过let和const具有一个暂时性死区的概念,即,没有到其赋值的时候,之前就不能使用),即在声明之前使用,就会报错,得在声明之后使用,类似于c,更贴近c
- 块级作用域方面
var不存在块级作用域,let和const存在块级作用域
- 声明方面
var允许重复声明变量
let和const在同一作用域不允许重复声明变量
其中const声明一个只读的常量(因为如此,其声明的时候,就要赋值,不然会报错),一旦声明,这个常量的值,就不能更改