var、let、const的特点:
(1)let:
1、let声明的变量不能提升
2、let声明的变量不能重复声明
3、let声明的变量只在当前块作用域中有效
4、let声明的变量会产生暂时性的死区,只能在当前块作用域查找。
(2)const:
1、const声明的变量必须赋初值
2、const声明的变量是常量,不能发生改变。
3、const声明的变量不能提升
4、const声明的变量不能重复声明
5、const声明的变量只在当前块作用域中有效
6、const声明的变量会产生暂时性的死区,只能在当前块作用域查找。
(3)var
1、var声明变量可以重复声明
2、var是不受限于块级的
3、var可以在声明的上面访问变量,而let有暂存死区,在声明的上面访问变量会报错
注意:大括号{ } 即块级作用域,包括if 、函数 、for循环等