我是靠谱客的博主 聪慧服饰,最近开发中收集的这篇文章主要介绍ES6----let和const,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

  1. let声明的变量只在它所在的代码块中有效(for循环还有一个特别之处,就是设置循环变量的那部分是一个父作用域,而循环体内部是一个单独的子作用域。)
    只要块局作用域内存在let命令,它所声明的变量就绑定了这个区域,不再受外部影响。
    let注意点

    1. let不能再一个函数中重复声明
    2. 立即执行函数写法
    // IIFE 写法
    (function () {
    var tmp = ...;
    ...
    }());
    // 块级作用域写法
    {
    let tmp = ...;
    ...
    }
    3. es6的块级作用域必须有大括号,否则就会认为不存在块级作用域。
    4. es6的引入明确允许在块级作用域中声明函数。
    

    在es5中函数的声明会提升到块级作用域的头部,会连方法整个提升。在es6中会像var一样提升到作用域头部,然后赋值为undefined。

  2. const注意事项:const定义的值不允许改变,(数组、字符串、布尔值)所指向的内存中的值不允许改变,但是数组和对象是指向的指针不允许改变,但是内部结构是可以改变的。

    使用var和function声明的全局变量会成为顶层对象的属性,可以通过window来获取到,这也是js最大的败笔。为了优化这一缺陷,es6通过的let、const、class命名的全局变量不属于顶层对象的属性。

     var a = 1;
    // 如果在 Node 的 REPL 环境,可以写成 global.a
    // 或者采用通用方法,写成 this.a
    window.a // 1
    let b = 1;
    window.b // undefined
    

    全局环境中,this会返回顶层对象。但是,Node 模块和 ES6 模块中,this返回的是当前模块。

最后

以上就是聪慧服饰为你收集整理的ES6----let和const的全部内容,希望文章能够帮你解决ES6----let和const所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部