zoukankan      html  css  js  c++  java
  • ECMAScript 6 入门学习笔记(一)——let和const

    一、let

      ①声明变量 let a = 1;

      ②只在所在代码块内有效,不影响块以外

      ③不存在变量提升(不能先用后声明)

      ④暂时性死区

        let声明的变量“绑定”这个区域,不受外部影响。

        let声明之前,都是这个变量的‘死区’

        注:typeof在死区是ReferenceError,没声明是“undefined”

      ⑤不能重复声明同一个变量

    二、块级作用域

      ① 允许块级作用域的任意嵌套,外层作用域无法读取内层作用域的变量,内层作用域可以定义外层作用域的同名变量 

    // IIFE 写法
    (function () {
        var tmp = ...;
        ...
    }());
    
    // 块级作用域写法
    {
        let tmp = ...;
        ...
    }

      ②允许在块级作用域之中声明函数(不建议使用,浏览器环境不同,差异大)

      ③do表达式(得到块级作用域的返回值)

    let x = do {
        let t = f();
        t * t + 1;
    };

    三、const

      ①声明一个只读的常量。一旦声明,常量的值就不能改变。

      ②不能只声明不赋值

      ③只在声明所在的块级作用域内有效

      ④存在暂时性死区,只能在声明的位置后面使用

      ⑤不可重复声明

      ⑥本质:const实际上是保证变量指向的内存地址不得改动,不是变量值不能改(对象和数组)

      ⑦es6六种声明变量方法:var,function,let,const,import,class

    四、顶层对象的属性

      ①顶层对象:浏览器 --> window对象 Node --> global对象

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

    五、global对象

      ①顶层对象不一定总能取到,system.global让global作为顶层对象,让它在各种环境下都存在。

  • 相关阅读:
    [BZOJ3535][Usaco2014 Open]Fair Photography
    [LOJ#2270][BZOJ4912][SDOI2017]天才黑客
    [UOJ#122][NOI2013]树的计数
    [BZOJ4816][Sdoi2017]数字表格
    [BZOJ2154]Crash的数字表格
    [BZOJ3529][Sdoi2014]数表
    [BZOJ2820]YY的GCD
    [BZOJ2301][HAOI2011]Problem b
    [UOJ#223][BZOJ4654][Noi2016]国王饮水记
    [BZOJ4653][Noi2016]区间
  • 原文地址:https://www.cnblogs.com/MaiJiangDou/p/6768644.html
Copyright © 2011-2022 走看看