最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 阮一峰《ES6 教程》总结系列(一)--let 和 const 命令

    正文概述 掘金(IsolateActors)   2021-02-05   643

    let 和 const 命令

    1.let 命令

    基本用法

    • let用法类似于var,但只在它所声明的代码块内有效

      • 循环时JavaScript 引擎内部会记住上一轮循环的值,初始化本轮的变量i时,就在上一轮循环的基础上进行计算
      • for循环还有一个特别之处,就是设置循环变量的那部分是一个父作用域,而循环体内部是一个单独的子作用域

    let不存在变量提升

    • 声明的变量一定要在声明后使用,否则报错。

    暂时性死区

    • 只要块级作用域内,存在let和const命令,这个区块对这些命令声明的变量,从一开始就形成了封闭作用域。凡是在声明之前就使用这些变量,就会报错,称之为“暂时性死区”。

      • 在死区中运行 typeof 时会抛出一个ReferenceError

    不允许重复声明

    • 不允许在相同作用域内,重复声明同一个变量;不能在函数内部重新声明参数

    2.块级作用域

    为什么需要块级作用域

    • 内层变量可能会覆盖外层变量
    • 用来计数的循环变量泄露为全局变量

    ES6 的块级作用域

    • 允许块级作用域的任意嵌套
    • 使得匿名立即执行函数表达式(匿名 IIFE)不再必要了

    块级作用域与函数声明

    • 允许在块级作用域之中声明函数,行为类似于let,在块级作用域之外不可引用

      • 应该避免在块级作用域内声明函数,如果确实需要,也应该写成函数表达式,而不是函数声明语句,即{let f = function(){}}
      • 块级作用域必须有大括号,如果没有大括号,JavaScript 引擎就认为不存在块级作用域

    3.const 命令

    基本用法

    • const声明一个只读的常量,一旦声明就不能改变

      • 声明变量时,就必须立即初始化,不能留到以后赋值;只声明不赋值,就会报错
      • 作用域与let命令相同:只在声明所在的块级作用域内有效
      • 声明的常量也是不提升,同样存在暂时性死区
      • 与let一样不可重复声明

    本质

    • const实际上保证的是变量指向的内存地址不变

      • 对于简单类型的数据(数值、字符串、布尔值),值保存在栈内存,因此等同于常量

      • 但对于复合类型的数据(主要是对象和数组),变量保存的是指向该对象的内存地址,所指向的对象数据结构是可变的

        • 想将对象冻结,应该使用Object.freeze方法

    ES6 声明变量的六种方法

    • var 和 function 命令
    • let 和 const 命令
    • import 和 class 命令

    4. 顶层对象的属性

    浏览器环境指的是window对象,在 Node 指的是global对象

    • var命令和function命令声明的全局变量,依旧是顶层对象的属性
    • let命令、const命令、class命令声明的全局变量,不属于顶层对象的属性

    5. globalThis 对象

    顶层对象在各种实现环境里面是不统一的

    • 浏览器里面,顶层对象是window
    • 浏览器和 Web Worker 里面,self也指向顶层对象
    • Node 里面,顶层对象是global

    ES2020 在语言标准的层面,引入globalThis作为顶层对象。也就是说,任何环境下,globalThis都是存在的,都可以从它拿到顶层对象,指向全局环境下的this。

    思维导图

    阮一峰《ES6 教程》总结系列(一)--let 和 const 命令


    起源地下载网 » 阮一峰《ES6 教程》总结系列(一)--let 和 const 命令

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元