let 命令
基本用法:
{
let a = 0;
a // 0
}
a // 报错 ReferenceError: a is not defined
let 只能声明一次
let 不存在变量提升
const 命令
基本用法:
const PI = "3.1415926";
PI // 3.1415926
const MY_AGE; // SyntaxError: Missing initializer in const declaration
const 声明一个只读变量,声明之后不允许改变。意味着,一但声明必须初始化,否则会报错
暂时性死区:
var PI = "a";
if(true){
console.log(PI); // ReferenceError: PI is not defined
const PI = "3.1415926";
}
ES6 明确规定,代码块内如果存在 let 或者 const,代码块会对这些命令声明的变量从块的开始就形成一个封闭作用域。代码块内,在声明变量 PI 之前使用它会报错