变量的解构和赋值

3 篇文章 0 订阅

数组的解构赋值(按次序来比对)

  • 完全解构
  • 不完全解构
  • 默认值(es6的解构是===的)

对象的解构赋值(按照位置来取值)

也就是说,对象的解构赋值的内部机制,是先找到同名属性,然后再赋给对应的变量。真正被赋值的是后者,而不是前者。

    let { foo: baz } = { foo: "aaa", bar: "bbb" };
    baz // "aaa"
    foo // error: foo is not defined

    const node = {
        loc: {
            start: {
            line: 1,
            column: 5
            }
        }
    };

    let { loc, loc: { start }, loc: { start: { line }} } = node;
    line // 1
    loc  // Object {start: Object}
    start // Object {line: 1, column: 5}

上面代码有三次解构赋值,分别是对loc、start、line三个属性的解构赋值。注意,最后一次对line属性的解构赋值之中,只有line是变量,loc和start都是模式,不是变量。

字符串的解构赋值

数值和布尔值的解构赋值(会优先被转换为对象)

函数参数的解构赋值

圆括号问题(以下三种不得使用圆括号)

  • 变量声明语句
  • 函数参数
  • 赋值语句的模式

使用

  • 交换变量赋值
  • 从函数返回多个值
  • 函数参数的定义
  • 提取JSON的值
  • 函数参数的默认值
  • 遍历Map结构(任何部署了 Iterator 接口的对象,都可以用for…of循环遍历。Map 结构原生支持 Iterator 接口,配合变量的解构赋值,获取键名和键值就非常方便。)
  • 输入模块的指定方法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对象解构赋值ES6中引入的一种语法,它可以让我们更方便地从一个对象中提取需要的属性,并将它们赋值变量。 对象解构的基本语法如下: ``` let { prop1, prop2, … } = obj; ``` 其中,`obj` 是一个对象,`prop1`、`prop2` 等是对象的属性名。上面的代码将对象 `obj` 中的属性 `prop1`、`prop2` 等的值分别赋值变量 `prop1`、`prop2` 等。 对象解构还可以设置默认值。例如: ``` let { prop1 = defaultValue1, prop2 = defaultValue2, … } = obj; ``` 如果对象 `obj` 中没有属性 `prop1`、`prop2` 等,则变量 `prop1`、`prop2` 等会被赋值为 `defaultValue1`、`defaultValue2` 等。 除了对象解构,还可以使用对象赋值来修改一个对象的属性值。例如: ``` let obj = { prop1: value1, prop2: value2, … }; obj = { ...obj, prop1: newValue1, prop2: newValue2, … }; ``` 上面的代码将对象 `obj` 中的属性 `prop1`、`prop2` 等的值分别修改为 `newValue1`、`newValue2` 等。 对象赋值还可以用来合并两个对象。例如: ``` let obj1 = { prop1: value1, prop2: value2, … }; let obj2 = { prop1: newValue1, prop3: value3, … }; let mergedObj = { ...obj1, ...obj2 }; ``` 上面的代码将对象 `obj1` 和 `obj2` 合并成一个新的对象 `mergedObj`。注意,如果 `obj1` 和 `obj2` 中有相同的属性,后面的对象的属性值会覆盖前面的对象的属性值。 总之,对象解构赋值是一种非常实用的语法,它可以让我们更方便地操作对象中的属性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值