美文网首页
ES6——let、const的使用

ES6——let、const的使用

作者: LcoderQ | 来源:发表于2024-06-16 09:42 被阅读0次

    与var的区别

    区别一:

    let关键字:

    • 从直观的角度来说,let和var是没有太大的区别的,都是用于声明一个变量

    const关键字:

    • const关键字是constant的单词的缩写,表示常量、衡量的意思;
    • 它表示保存的数据一旦被赋值,就不能被修改;但是如果赋值的是引用类型,那么可以通过引用找到对应的对象,修改对象的内容;

    此外let、const不允许重复声明变量

    作用域提升:

    var声明的变量是会进行作用域提升的,使用let声明的变量,在声明之前访问会报错;


    image.png

    维基百科并没有对作用域提升有严格的概念解释,那么我们自己从字面量上理解;

    • 作用域提升:在声明变量的作用域中,如果这个变量可以在声明之前被访问,那么我们可以称之为作用域提升;
    • 在这里,它虽然被创建出来了,但是不能被访问,我认为不能称之为作用域提升;
    • 所以我们可以认为let、const没有进行作用域提升,但是会在解析阶段被创建出来

    块级作用域

    JavaScript只会形成两个作用域:全局作用域和函数作用域。


    image.png

    ES5中放到一个代码中定义的变量,外面是可以访问的


    image.png

    const、let
    在ES6中新增了块级作用域,并且通过let、const、function、class声明的标识符是具备块级作用域的限制的

    image.png

    我们发现函数拥有块级作用域,但是外面依然是可以访问的:这是因为引擎会对函数的声明进行特殊的处理,允许像var那样进行提升;

    典型应用

    es6.png
    • 不必在使用立即执行函数,为i添加一个特定的函数作用域


      ies5.png

    相关文章

      网友评论

          本文标题:ES6——let、const的使用

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