es6中的暂时性死区

该文章由 leevare 发布于 ,归类于 Javascript

只要在块级作用域中存在let命令,它所声明的变量就绑定了这个区域,不再受外部影响。

{
    var a = 1;

    if(true) {
        a = 4;
        let a = 5;
        console.log(a);
    }
}

上述的这段代码,会报错误a未定义,这是因为a在作用域内使用let声明,但是a却在声明之前调用,这里就形成了暂时性死区,所以就调用不成功了,尽管a在外部也有定义。

在es6中,如果区块中存在letconst命令,这个区块对这些命令声明的变量,从一开始就形成了封闭的作用域。凡是在声明之前就使用这些变量,就会报错。

如果觉得我的文章对您有用,请您随意打赏。您的支持将鼓励我更加努力创作!

相关文章:

说点什么

avatar
300
  Subscribe  
提醒