一、let
- 使用let声明的变量形成块级作用域,主要是改变了语句的局部变量的作用域,不会再暴露成全局变量
- let声明的变量不会发生变量提升
- 使用let声明的变量具有暂时性死区特性,在块级中声明变量之前,使用这个变量,会发生报错。
- 使用let声明了的变量不能再用const和var来定义。
二、const
- const声明的是常量。
- 声明的变量也有块级作用域。
- 声明常量时必须赋值初始值。
- 赋值后,基本类型的值不能重新赋值,引用类型的值可以修改内部的值,但不能修改内存地址,即值整个切换,整个切换相当于基本类型重新赋值了。
三、var、let、const的区别
- var声明的变量存在变量提升现象。
- let和const存在的变量不存在变量提升的现象
- const声明的变量不能再重新赋值。