其他分享
首页 > 其他分享> > let与const的作用域

let与const的作用域

作者:互联网

1、let与const

let与const都是块级作用域,不存在变量提升,且不可重复声名。
const声明一个只读的常量,一旦声明,常量的值就不能改变。

// var 的情况
console.log(foo); // 输出undefined
var foo = 2;

// let 的情况
console.log(bar); // 报错ReferenceError
let bar = 2;

// const 的情况
console.log(too); // 报错ReferenceError
const too = 2;

2 暂时性死区

暂时性死区(temporal dead zone,简称 TDZ),ES6 规定,如果区块中存在let和const命令,这个区块对这些命令声明的变量,从一开始就形成了封闭作用域。凡是在声明之前就使用这些变量,就会报错。

if (true) {
  // TDZ开始
  tmp = 'abc'; // ReferenceError
  console.log(tmp); // ReferenceError
  
  let tmp; // TDZ结束
  console.log(tmp); // undefined
  
  tmp = 123;
  console.log(tmp); // 123
}

标签:tmp,const,log,作用域,let,console,ReferenceError
来源: https://blog.csdn.net/qq_41904629/article/details/123581203