es6中的暂时性死区
只要在块级作用域中存在let
命令,它所声明的变量就绑定了这个区域,不再受外部影响。
{
var a = 1;
if(true) {
a = 4;
let a = 5;
console.log(a);
}
}
上述的这段代码,会报错误a
未定义,这是因为a
在作用域内使用let
声明,但是a
却在声明之前调用,这里就形成了暂时性死区,所以就调用不成功了,尽管a
在外部也有定义。
在es6中,如果区块中存在let
和const
命令,这个区块对这些命令声明的变量,从一开始就形成了封闭的作用域。凡是在声明之前就使用这些变量,就会报错。
如果您觉得本文对您有用,欢迎捐赠或留言~
- 本博客所有文章除特别声明外,均可转载和分享,转载请注明出处!
- 本文地址:https://www.leevii.com/?p=760