let和const声明

182 阅读1分钟

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);//常量约定俗成大写