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 聲明一個只讀變量,聲明之后不允許改變。意味著,一但聲明必須初始化,否則會報錯
暫時性死區(qū):
var PI = "a";
if(true){
console.log(PI); // ReferenceError: PI is not defined
const PI = "3.1415926";
}
ES6 明確規(guī)定,代碼塊內如果存在 let 或者 const,代碼塊會對這些命令聲明的變量從塊的開始就形成一個封閉作用域。代碼塊內,在聲明變量 PI 之前使用它會報錯