• 《ES6标准入门》读书笔记 第3章


    数组的解构赋值

    解构赋值遵循模式匹配原则。

    下面看例子:

    let [a, b] = [1, 2] // 基础用法
    let [a, b] = [1, [2, 3]] // b = [2, 3],模式匹配
    let [a, [b]] = [1, [2]] // b = 2,模式匹配
    let [a, ...b] = [1, 2, 3] // b = [2, 3],残余全接收,行为与函数rest参数一致
    let [a] = [1, 2] // a = 1,冗余
    let [a, , c] = [1, 2, 3] // a = 1, c = 3,丢弃写法,不像python需要_占位
    let [x, y = 'd'] = ['a'] // x = 'a', y = 'd',指定默认值
    [a, b] = [b, a] // 可以用于交换变量
    

    对象的解构赋值

    按键解构,如果键不同名需要指定别名。该特性也让我们可以方便地从函数返回多个值,或提取JSON解析结果。

    下面看例子:

    let { a, b } = {a: 1, b: 2} // a = 1, b = 2
    let { b, a } = {a: 1, b: 2} // a = 1, b = 2
    let { b: c, a } = {a: 1, b: 2} // a = 1, c = 2,注意b、c的顺序与直觉相反
    let { c } = {a: 1} // c = undefined,这是易于理解的
    let { x = 3 } = { } // x = 3,应用默认值的条件是===undefined
    let { length } = 'hello' // length = 5,这是因为字符串对象有length属性
    let { x } = undefined // or null,导致TypeError
    

    更多

    我们在这里只讨论了最常见的两种解构赋值的用法。实际上,解构赋值的形式是多样的,用处是大的。当掌握了这两种解构赋值的基础后,自然而然会在编码中用到各种形式的解构赋值,无需特别讨论。

  • 相关阅读:
    两列布局
    BFC布局
    iframe高度自适应(同域)
    iframe关于滚动条的去除和保留
    testng入门_单元测试
    Ionic学习笔记5_动态组件指令
    Ionic学习笔记4_ionic路由(页面切换)
    Ionic学习笔记3_ionic指令简单布局
    Ionic学习笔记1_基本布局
    Angularjs学习笔记11_手工初始化
  • 原文地址:https://www.cnblogs.com/zxuuu/p/12864045.html
Copyright © 2020-2023  润新知