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