- var 声明的变量会挂载在 window 上,而 let 和 const 声明的变量不会;
- var 声明变量存在变量提升,let 和 const 不存在变量提升;
- let 和 const 声明变量都没有函数作用域的概念,而是遵守块级作用域的概念;
- 同一作用域下 let 和 const 不能声明同名变量,而 var 可以;
- let 有暂存死区(在声明之前就使用变量,就会报错,这就是暂时性死区)
- let 和 const 关键字:let 和 const 声明变量都没有函数作用域的概念,而是遵守块级作用域的概念,并且没有变量提升的操作,不能重复声明。const 是声明常量版的 let,let 有暂时性死区的特性