一、var
1、声明提升
2、重复声明,变量覆盖
3、var声明的变量为全局变量时,会将该变量添加为全局对象的属性(浏览器的全局对象是window,Node的全局对象是global)
二、let
1、块级作用域
2、暂时性死区:块级作用域内初始化之前,这一段是暂时性死区,变量提升至暂时性死区,打印/使用该变量会报错
三、const
1、块级作用域
2、必须设置初始值
3、不能改变指针指向
4、一般用于全局作用域
5、暂时性死区:块级作用域内初始化之前,这一段是暂时性死区,变量提升至暂时性死区,打印/使用该变量会报错