美文网首页
ES6 块级作用域

ES6 块级作用域

作者: Cissy_fba3 | 来源:发表于2018-10-28 22:51 被阅读0次

    {}块级作用域,作用域之间互不影响(不管是父子还是孙子什么的,不像函数作用域,儿子没有可以找父亲要)

    let 解决var的变量提升问题,让变量安安分分地呆在自己的位置(可以不用闭包和立即执行函数了)
    1.let与{}一起,先声明再使用,不然会报错(Temp Dead Zone)
    2.let只认{},出了{}使用,报错。

    {
      //console.log(a)   报错
      let a=1
      //console.log(a)  1
        {
          //console.log(a)   报错
          let a=2
         //console.log(a)   2
            {
                //console.log(a)   报错
                let a=3
                //console.log(a)  3
            }
        }
    }
    

    const与let差不多,唯一区别:const只能赋值一次——常量——声明的时候必须赋值。

    for(let i=0;i<6;i++){//i的作用域只在括号里面(),花括号{}里面是访问不到i的
    }
    

    以下语句会产生 let 使用的作用域:
    for; if; switch;try/catch/finally。

    暂时性死区
    只要块级作用域内存在let命令,它所声明的变量就“绑定”(binding)这个区域,不再受外部的影响。

    var tmp = 123;
    
    if (true) {
      tmp = 'abc'; // ReferenceError
      let tmp;
    }
    

    相关文章

      网友评论

          本文标题:ES6 块级作用域

          本文链接:https://www.haomeiwen.com/subject/lnuzaftx.html