主要围绕一下五个方面
- 变量提升
- 暂时性死区
- 块级作用域
- 重复声明
- 修改声明的变量
1、变量的提升
【var】可以在声明前使用,即输出为undefined
【let】和【const】未声明不可使用,否则会报错
2、暂时性死区定义:在代码块内,如果引用了某个变量但是该变量没有被声明(即,在声明之前使用该变量),就会抛出一个ReferenceError。
【var】不存在暂时性死区,
【let、const】存在暂时性死区。
3、块级作用域:指的是在一对花括号{}
中定义的变量,仅在这对花括号内有效。
【var】不存在块级作用域,
【let、const】存在块级作用域。
如果把代码中的【let】改为【var】,则输出结果为 10 .
4、重复声明
【var】允许重复声明,
【let、const】不允许重复声明。
5、修改声明的变量
【var、let】可以修改,
【const】声明一个只读的常量,一旦声明,值就不能改变。
总结使用:常量使用const ,其他情况使用let ,避免使用var 。