ES6 学习笔记(基础)

书链接:http://es6.ruanyifeng.com/

#、let

  • let 不存在“变量提升”
  • 暂时性死区(即:let 所定义的变量在局部作用域中不受外界影响)
    var tmp = 123;
    if (true) {
      tmp = 'abc'; // ReferenceError
      let tmp;
    }
  • 不允许重复声明

#、const 

  • 定义一个常量(试图修改常量值会报错)
  • 和 let 一样,变量不提升、存在 暂时性死区、不允许重复声明

#、变量解构赋值的用途

  • 交换变量的值
    let x = 1;
    let y = 2;
    
    [x, y] = [y, x];
    console.log(x,y);//2,1
  • 从函数返回多个值
    // 返回一个数组
    
    function example() {
      return [1, 2, 3];
    }
    let [a, b, c] = example();
    
    // 返回一个对象
    
    function example() {
      return {
        foo: 1,
        bar: 2
      };
    }
    let { foo, bar } = example();
  • 提取JSON数据
    let jsonData = {
      id: 42,
      status: "OK",
      data: [867, 5309]
    };
    
    let { id, status, data: number } = jsonData;
    
    console.log(id, status, number);// 42, "OK", [867, 5309]
  • 遍历Map结构
    const map = new Map();
    map.set('first', 'hello');
    map.set('second', 'world');
    
    for (let [key, value] of map) {
      console.log(key + " is " + value);
    }
    // first is hello
    // second is world

    如果只想获取键名,或者只想获取键值,可以写成下面这样。

    // 获取键名
    for (let [key] of map) {
      // ...
    }
    
    // 获取键值
    for (let [,value] of map) {
      // ...
    }
原文地址:https://www.cnblogs.com/candy-Yao/p/9773878.html