对象和数组的解构,rest操作符

1.数组的解构赋值

let [a,b,c]=[1,2,3];
let [foo,[[bar],baz]]=[1,[[2],3]];
foo //1
bar //2
baz //3
let [ , , third]=["foo","bar","baz"];
thrid //"baz"

let [x, , y]=[1,2,3];
x//1
y//3
let[head, ...tail]=[1,2,3,4];
head //1
tail //[2,3,4]

let[x,y, ...z]=['a'];
x//'a'
y//undefined
z//[]

如果解构不成功,变量的值为undfined

let [x, y]=[1];
let [y]=[];
//解构不成功,y都是undfined

不完全解构

let [x,y]=[1,2,3]
x//1
y//2

即为当左边的变量多,则是解构不成功
当右边的值多。则是不完全解构

2.对象的解构赋值

let {foo,bar}={foo:'aaa',bar:'bbb'};
foo //'aaa'
bar //'bbb'
let {bar,foo}={foo:'aaa',bar:'bbb'};
foo //'aaa'
bar //'bbb'
let {baz}={foo:'aaa',bar:'bbb'};
baz//undefined

等号左边的两个变量的次序与等号右边的两个同名属性的次序不一致,但是对取值无影响
若变量名无对应的同名属性,则取不到值,最后等于undefined

若变量名与属性名不一致,必须写成下面这样

let {foo:baz}={foo:'aaa',bar:'bbb'}
baz//'aaa'

解构嵌套解构的对象

let {p:[x,{y}]}={p:[hellow.{y:'world'}]};
x//'hello'
y//'world'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值