let和const声明
一、let声明
//块级区域
{
var value = 10;
let count = 20;
}
console.log(value); //10
console.log(count); //引用错误
var 声明具有变量提升能力,不管在哪里声明,均视为作用域顶部声明;
let 声明不具备变量提升能力,离开区块的作用域后,则变量立刻失效;
console.log(value); //undefined
var value; //变量提升导致逻辑怪异
console.log(count); //引用错误
let count;
3.如果在 let 声明前使用变量,这段区域被称为“临时死区(或暂时性死区)”
if (true) {
//死区开始
value = 20;
console.log(value);
//死区结束
let value = 10;
console.log(value);
}
“临时死区”简称:TDZ,这段区域使用 typeof 也会报错
4.var 声明可以重复声明同一个变量,后面会取代前一个变量; let 声明不可以重复声明一个变量,会直接报错,就算其中一个是 var;
二、const声明
1.const 声明的作用是:创建一个只读的常量,一旦声明不可改变;
2.和 let 声明一样,const 声明的常量无法提升,也存在临时死区;
3.和 let 不同的是,const 声明后必须立刻赋值,否则会报错;
const PI = 3.14;
console.log(PI);//常量约定俗成大写