美文网首页
ES6的let,const以及二者与var的区别(1)

ES6的let,const以及二者与var的区别(1)

作者: 山大王_af2b | 来源:发表于2018-05-29 20:56 被阅读0次

    ES6 let命令

    用来声明变量。语法类似于var,但是所声明的变量,只能在let命令所在的代码块内有效。

    for循环的计数器,很适合使用let命令

    for循环的特别之处,设置循环变量的那部分是一个父作用域,而循环体内部是一个单独的子作用域


    不存在变量提升

    var命令会发生“变量提升”现象,即变量可以在声明之前使用,值为undefined。

    为了纠正这种现象,let命令改变了语法行为,它所声明的变量一定要在声明之后使用,不然就会报错。


    暂时性死区

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

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

    使用ket命令声明变量之前,该变量都是不可用的。这在语法上,成为“暂时性死区”(temporal dead zone,TDZ)

    在let命令声明变量tmp之前,都属于变量tmp的“死区”。

    “暂时性死区”也意味着typeof不再是一个百分百安全的操作。

    有些“死区”比较隐蔽,不容易被发现。

    调用bar函数会报错。这是因为参数x默认值等于另一个参数y,而此时y还没有声明。

    相关文章

      网友评论

          本文标题:ES6的let,const以及二者与var的区别(1)

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