es6的解构赋值 const {xxx} = this

概念:他是一种针对数组或者对象进行模式匹配,然后对其中的变量进行赋值。方便了复杂对象中数据字段获取。

适用场景:

  1. 获取store / localStorage / sessionStorage等存的对象中的属性;

  2. 获取复杂函数中的多个返回值(js函数是对象);

  3. 接口返回参数转换;

1.对象中的属性

const name = this.item.name
const id = this.item.id
const url = this.item.url

// 简写如下
const { name, id, url } = this.item

2.取值函数中返回的值

 import { personalSave } from '@/composition/personaloffice'
 const scrollPositionNumber = personalSave().saveLandInfo
 const onScrollToPosition = personalSave().saveSeaInfo

//简写如下
 import { personalSave } from '@/composition/personaloffice'
 const { saveLandInfo, saveSeaInfo} = personalSave()

3. 数组中的解构赋值

// 当解构模式有匹配结果,且匹配结果是 undefined 时,会触发默认值作为返回结果。
let [a = 2] = [undefined]; // a = 2
let [a = 3, b = a] = [];     // a = 3, b = 3
let [a = 3, b = a] = [1];    // a = 1, b = 1
let [a = 3, b = a] = [1, 2]; // a = 1, b = 2

//获取this.item这个对象中的infoList的值,如果为undefined ,就将其赋值为一个空的数组
const { infoList = [] } = this.item

4. 剩余运算符

let {a, b, ...rest} = {a: 10, b: 20, c: 30, d: 40};
// a = 10
// b = 20
// rest = {c: 30, d: 40}

const [ list, ...otherList ] = [ {data1:1}, {data2:2}, 3 ]
// list = {data1:1}
// otherList = { {data2:2}, 3 }

实例:一个数组包了三个对象,其中一个对象里面又有有个数组,即:[ {...},{...},{[...]} ]

// 1.先判断是不是数组
if (!!res && Array.isArray(res)) {
    // 2. 将数组解构赋值 、{data: oneObj}:将对象解构赋值
    const [{data: oneObj}, {data: twoObj}, threeArr] = res;
    // 3. 赋值
    this.oneObj= oneObj; 
    this.twoObj = twoObj;
    this.threeArr = threeArr.data;
    this.threeArr = threeArr.totalPage;
 }
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ES6解构赋值的好处有以下几点: 1. 简化代码:ES6解构赋值可以让我们更简洁地从数组或对象中提取值,并将其赋给变量。这样可以减少冗余的代码,使代码更加简洁易读。 2. 提高可读性:通过使用解构赋值,我们可以清晰地表达出我们想要提取的值的含义,使代码更易于理解和维护。 3. 方便的交换变量值:使用解构赋值可以方便地交换两个变量的值,而不需要使用额外的中间变量。 4. 快速提取对象属性:解构赋值可以快速提取对象中的属性,并将其赋给变量。这样可以方便地访问和操作对象的属性。 5. 函数参数的灵活应用:解构赋值可以用于函数的参数中,可以方便地从传入的对象或数组中提取所需的值,使函数的参数更加灵活。 6. 处理JSON数据:解构赋值可以方便地从JSON数据中提取所需的值,使得处理JSON数据更加方便快捷。 7. 支持默认值:解构赋值可以为变量设置默认值,当提取的值不存在时,可以使用默认值来代替,避免出现undefined的情况。 8. 多层嵌套解构:ES6解构赋值支持多层嵌套的解构,可以方便地从复杂的数据结构中提取所需的值。 9. 可以与扩展运算符结合使用:解构赋值可以与扩展运算符(...)结合使用,可以方便地提取数组或对象中的部分值,并将其与其他值合并或进行其他操作。 总之,ES6解构赋值可以使我们的代码更加简洁、可读性更高,并且提供了更多的灵活性和便利性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值