1. **块级作用域:** 块作用域由 { }包括,let和const具有块级作用域,var不存在块级作用域。
2. **变量提升:** var存在`变量提升`,let和const不存在变量提升,即在`变量只能在声明之后使用,否在会报错。
3. **重复声明:** var声明变量时,可以重复声明变量,后声明的同名变量会覆盖之前声明的遍历。const和let不允许重复声明变量
4. **暂时性死区:** 在使用let、const命令声明变量之前,该变量都是不可用的。这在语法上,称为`暂时性死区`。使用var声明的变量不存在暂时性死区
5. **初始值设置:** 在变量声明时,var 和 let 可以不用设置初始值。`而const声明变量必须设置初始值。