ES6中的对象解构赋值

解构赋值:

解构赋值语法是一个Javascript表达式,这使得可以将数据从数组或对象提取到不同的变量中(这段话是mdn中关于解构赋值的定义,注意这里的定义,可以看出解构主要用在数组和对象上)。

说白了就是解析等号两边的结构,然后把右边的对应赋值给左边。如果解构不成功,变量的值就等于undefined

一、基本使用语法

注意:对象解构赋值的键名对应很重要,不然会找不到。因为对象是无序的,必须通过键名来识别。

1、未先声明变量再进行对象解构赋值
//对象的键名和键值一致时,可以只写一个变量名即可
let {aa,bb} = {aa:123,bb:456};
//等价于 let {aa:aa,bb:bb} = {aa:123,bb:456};
console.log(aa,bb); // 123  456
2、先声明变量再进行对象解构赋值
let aa,bb;
//对象的键名和键值一致时,可以只写一个变量名即可
({aa,bb} = {aa:123,bb:456});
console.log(aa,bb); // 123  456

注意:如果变量已经事先被声明了,那么在进行对象解构赋值的时候一定要用小括号包住,不然会报错。

3、对象的键名和键值不一致时
//对象的键名和键值一致时,可以只写一个变量名即可
let {aa:a,bb:b} = {aa:123,bb:456};
console.log(a,b); // 123  456
console.log(aa); // 报错aa is not defined

上面的代码中,对象的解构赋值是内部机制,是先找到同名属性,然后再赋给对应的变量。
aa是匹配的模式, a才是变量。真正被赋值的是后者,而不是前者。

4、有默认值的对象解构赋值
let {a = 3,b = 4} = {a:5}
console.log(a,b); // 5  4
二、对象解构赋值的使用场景
1、处理后端返回的json数据,取出自己想要的字段值
let dataJson = {
title:"abc",
name:"winne",
test:[{
   title:"ggg",
   desc:"对象解构赋值"
}]
}
//我们只需要取出需要的两个title值(注意结构和键名)
let {title:oneTitle,test:[{title:twoTitle}]} = dataJson;
//如果只需要其中一个数据,直接根据结构键名来写就好了
let { name } = dataJson;  //相当于es5的 let name = dataJson.name;
console.log(oneTitle,twoTitle); // abc  ggg
console.log(name); // winne

注意:json结构和键名要一一对应才能进行正确解构赋值。

  • 9
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值