ES6——对象的解构赋值

对象的解构赋值,用于从一个现有的对象取值,将其中所有可遍历但尚未赋值的属性,分配到指定的对象上面,所有的键和他们的值都会“ 浅拷贝”到新对象上面。
//解构赋值
let {x,y,...z} = {x:1,y:2,a:3,b:4,c:{ca : 5}}
//结果如下:
x //1
y //2
z //{a:3,d:4,c:{ca:5}}

在上面的代码中,等号右边的对象的属性x,y,a,b,c都是可遍历的,但是x和y已经被读取,所以z接收的是剩下的几个属性。

需要注意的是,在进行对象的解构赋值时,语法上有如下要求:

1.  要求等号右边必须是对象。如果等号右边不是对象的话,编译器会尝试将等号右边的值转换为对象,如果转换失败的话,会返回运行时错误。根据JavaScript的类型转换知识,我们得出结论:如果在进行对象解构赋值时,等号右边是undefined和null的话,会报错,因为二者不能转换成对象。

// 因为转换对象失败,而报错的解构赋值
let { x, y, ...z } = null; // 运行时错误
let { x, y, ...z } = undefined; // 运行时错误
2. 要求解构赋值必须是最后一个参数,否则报错。

// 因为解构赋值不是最后一个参数而报错
let { ...x, y, z } = obj; //
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值