zoukankan      html  css  js  c++  java
  • ES6 解构赋值

    ES6解构赋值

     

    1、数组的解构赋值

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    // 数组的解构赋值
     
    // const arr = [1, 2, 3, 4];
    // let [a, b, c, d] = arr;
     
    // ------------------------------------------
     
    // 更复杂的匹配规则
     
    // const arr = ['a', 'b', ['c', 'd', ['e', 'f', 'g']]];
     
    // const [ , b] = arr;
    // const [ , , g] = ['e', 'f', 'g']
    // const [ , , [ , , g]] = ['c', 'd', ['e', 'f', 'g']];
    // const [ , , [ , , [ , , g]]] = arr;
     
    // ------------------------------------------
     
    // 扩展运算符  ...
     
    // const arr1 = [1, 2, 3];
    // const arr2 = ['a', 'b'];
    // const arr3 = ['zz', 1];
    // const arr4 = [...arr1, ...arr2, ...arr3];
     
    // const arr = [1, 2, 3, 4, 5, 6];
    // const [a, b, ...c] = arr;
     
    // ------------------------------------------
     
    // 默认值
     
    // const arr = [1, null, undefined];
    // const [a, b = 2, c, d = 'aaa'] = arr;
     
    // ------------------------------------------
     
    // 交换变量
     
    // let a = 20;
    // let b = 10;
     
    // let temp;
     
    // temp = a;
    // a = b;
    // b = temp;
     
    // [a, b] = [b, a];
     
    // ------------------------------------------
     
    // 接收多个 函数返回值
     
    // function getUserInfo(id) {
    //   // .. ajax
     
    //   return [
    //     true,
    //     {
    //       name: '小明',
    //       gender: '女',
    //       id: id
    //     },
    //     '请求成功'
    //   ];
    // };
     
    // const [status, data, msg] = getUserInfo(123);

    2、对象的解构赋值

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    // 对象的解构赋值
     
    // const obj = {
    //  saber: '阿尔托利亚',
    //  archer: '卫宫'
    // };
    // const { saber, archer1 } = obj;
     
    // ------------------------------------------
     
    // 稍微复杂的解构条件
     
    // const player = {
    //  nickname: '感情的戏∫我没演技∆',
    //  master: '东海龙王',
    //  skill: [{
    //      skillName: '龙吟',
    //      mp: '100',
    //      time: 6000
    //  },{
    //      skillName: '龙卷雨击',
    //      mp: '400',
    //      time: 3000
    //  },{
    //      skillName: '龙腾',
    //      mp: '900',
    //      time: 60000
    //  }]
    // };
     
    // const { nickname } = player;
    // const { master } = player;
    // const { skill: [ skill1, { skillName }, { skillName: sklName } ] } = player;
     
    // const { skill } = player;
    // const [ skill1 ] = skill;
     
     
    // ------------------------------------------
     
    // 结合扩展运算符
     
    // const obj = {
    //  saber: '阿尔托利亚',
    //  archer: '卫宫',
    //  lancer: '瑟坦达'
    // };
     
    // const { saber, ...oth } = obj;
    // const obj1 = {
    //  archer: '卫宫',
    //  lancer: '瑟坦达'
    // }
     
    // const obj = {
    //  saber: '阿尔托利亚',
    //  ...obj1,
    // };
     
    // ------------------------------------------
     
    // 如何对已经申明了的变量进行对象的解构赋值
     
    // let age;
    // const obj = {
    //  name: '小明',
    //  age: 22
    // };
     
    // ({ age } = obj);
     
    // ------------------------------------------
     
    // 默认值
     
    // let girlfriend = {
    //  name: '小红',
    //  age: undefined,
    // };
     
    // let { name, age = 24, hobby = ['学习'] } = girlfriend;
     
    // ------------------------------------------
    // ------------------------------------------
     
    // 提取对象属性
     
    // const { name, hobby: [ hobby1 ], hobby } = {
    //  name: '小红',
    //  hobby: ['学习']
    // };
     
    // ------------------------------------------
     
    // 使用对象传入乱序的函数参数
     
    // function AJAX({
    //  url,
    //  data,
    //  type = 'get'
    // }) {
    //  // var type = option.type || 'get';
     
    //  // console.log(option);
    //  console.log(type);
    // };
     
    // AJAX({
    //  data: {
    //      a: 1
    //  },
    //  url: '/getinfo',
    // });
     
    // ------------------------------------------
     
    // 获取多个 函数返回值
     
    // function getUserInfo(uid) {
    //  // ...ajax
     
    //  return {
    //      status: true,
    //      data: {
    //          name: '小红'
    //      },
    //      msg: '请求成功'
    //  };
    // };
     
    // const { status, data, msg: message } = getUserInfo(123);
     
    // ------------------------------------------

    3、字符串的解构赋值

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    // 字符串的结构赋值
    const str = 'I am the bone of my sword'// 我是剑骨头
     
    // const [ a, b ,c, ...oth ] = str;
     
    // const [ ...spStr1 ] = str;
    // const spStr2 = str.split('');
    // const spStr3 = [ ...str ];
     
    // ------------------------------------------
     
    // 提取属性
     
    // const { length, split } = str;

    4、数值与布尔值的解构赋值

    1
    2
    3
    4
    // 数值与布尔值的解构赋值
     
    const { valueOf: vo } = 1;
    const { toString: ts } = false;

    5、函数参数的解构赋值

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    // 函数参数的解构赋值
     
    // function swap([x, y]) {
    //  return [y, x];
    // };
     
    // let arr = [1, 2];
    // arr = swap(arr);
     
    function Computer({
        cpu,
        memory,
        software = ['ie6'],
        OS = 'windows 3.5'
    }) {
     
        console.log(cpu);
        console.log(memory);
        console.log(software);
        console.log(OS);
     
    };
     
    new Computer({
        memory: '128G',
        cpu: '80286',
        OS: 'windows 10'
    });
  • 相关阅读:
    小试阿里云容器服务
    .NET跨平台:再见dnx,你好dotnet cli
    使用Let's Encrypt手动创建https证书
    Chrome以https访问gitlab的问题:Your connection is not private
    [ASP.NET 5]终于解决:Unable to load DLL 'api-ms-win-core-localization-obsolete-l1-2-0.dll'
    Mac上远程桌面连接Windows Server 2012 R2
    解决JSON.stringify()在IE10下无法使用的问题
    解决阿里云SLB无法添加https证书的问题
    “状态机”学习笔记
    HttpClient读取ASP.NET Web API错误信息的简单方法
  • 原文地址:https://www.cnblogs.com/fly9/p/11571007.html
Copyright © 2011-2022 走看看