zoukankan      html  css  js  c++  java
  • ES6 基础 二

    变量的解构:

    1. 数组解构:

    按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring):

    let [a, b, c] = [1, 2, 3];

    只要等号两边的模式相同,左边的变量就会被赋予对应的值:

    let [foo, [[bar], baz]] = [1, [[2], 3]];

    let [a, [b], d] = [1, [2, 3], 4];
    a // 1
    b // 2
    d // 4


    如果等号的右边不是数组(或者严格地说,不是可遍历的结构,参见《Iterator》一章),那么将会报错:
    // 报错
    let [foo] = 1;
    let [foo] = false;
    let [foo] = NaN;
    let [foo] = undefined;
    let [foo] = null;
    let [foo] = {};


    Set 结构 解构??????????????????????????????????????????????????????????????????????????????????
    Generator 函数 解构 ??????????????????????????????????????????????????

    解构赋值允许指定默认值:
    let [x, y = 'b'] = ['a']; // x='a', y='b' 
    let [x, y = 'b'] = ['a', undefined]; // x='a', y='b'  只有当一个数组成员严格等于undefined,默认值才会生效。
    let [x = 1] = [null]; // x = null


    默认值可以引用解构赋值的其他变量,但该变量必须已经声明:

    let [x = 1, y = x] = [];     // x=1; y=1
    let [x = 1, y = x] = [2];    // x=2; y=2
    let [x = 1, y = x] = [1, 2]; // x=1; y=2
    let [x = y, y = 1] = [];     // ReferenceError: y is not defined

    2. 对象解构:

    3. 函数解构:

    ???????????????????????? 没看懂为啥? .map 是函数? 这个的属性值?

    [[1, 2], [3, 4]].map(([a, b]) => a + b); 
    // [ 3, 7 ]









     
     
  • 相关阅读:
    Linux的命令2
    运维书
    管理MariaDB
    MariaDB基础命令
    Linux创建桥接网络
    聚合网络
    kickstart
    VLAN原理
    进程优先和ACL
    计划任务at、crontab
  • 原文地址:https://www.cnblogs.com/luoye-chenxin/p/9367265.html
Copyright © 2011-2022 走看看