ES6解构总结

一、数组的解构赋值

分类:
  • 完全解构:模式完全匹配,左侧数组中的变量都能找到刚好对应的值(完全对应)
  • 不完全解构:左侧数组的模式只能匹配一部分的等号右侧的数组。(右侧有多余)
  • 解构不成功:左侧数组中存在变量找不到对应值的情况,这部分变量的值为默认值。(左侧有多余)
  • 解构出错:右边不是可遍历的结构(对应出错)
默认值:

[]等同于[undefiend]

let [x = f()] = [1];

等价于

let x;
if([1][0] === undefiend){
x= f();
}else{
x=[1][0];
}

二、对象的解构赋值

与数组之间的区别:

数组的元素按次序进行模式匹配,对象的元素按属性名进行匹配

理解:

let {foo,bar} = {foo:”aaa”,bar:”bbb”};

等价于

let {foo:foo,bar:bar} = {foo:”aaa”,bar:”bbb”};

通过属性名找到对应关系,将属性名后的变量与值对等起来。

分类:
  • 完全解构:变量名完全对应(完全对应)
  • 不完全解构:部分值多余(右侧有多余)
  • 解构不成功:部分变量找不到对应值,设置为默认值(左侧有多余)
  • 解构出错:嵌套对象,自对象所在的父属性不存在
默认值:

let {x = 3} = {};

等同于

let {x = 3} = {x:undefiend};

注意

数组是特殊的对象,可以进行对象属性解构,元素名为位置Index

三、字符串的解构赋值

字符串转成数组进行解构

四、数值和布尔值的解构赋值

规则:等号右边的值不是对象或数组就先转为对象

五、函数参数的解构赋值

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值