let、const和var的区别
-
let、const声明的变量不能重复声明,const声明的变量不能被再次赋值,而var声明的变量可以重复声明。
-
let、const存在暂时性死区,而var定义的变量不存在暂时性死区。
- 暂时性死区:即在let、const所处的当前作用域到变量声明的那一行,是不能使用变量的。
- 暂时性死区与声明的位置无关,而与代码的执行顺序有关。
-
let、const定义的变量不存在变量提升。
- let、const定义的变量虽然不存在变量提升,但是在解析阶段其实已经在其对应的词法环境中的环境记录中创建了该变量,只是不能使用。
-
let、const定义的变量所属的代码块存在块级作用域。