1.let关键字
- let声明的变量只在所处的块级作用域有效
- 使用let关键字的变量才有块级作用域,使用var声明的变量不具备块级作用域特性
- 防止循环变量变成全局变量
- 不存在变量提升,只能先声明再使用
- 暂时性死区
var num = 10;
if (true) {
console.log(num); //不会到全局中去查找num
let num = 20; //用let声明了num,num就与这个块级作用域绑定了,会出现undefined
}
2.const关键字
- 作用:声明常量,常量就是值(内存地址)不能变化的值
- 具有块级作用域
- 声明常量时必须赋值
- 常量赋值后,值不能更改