ES6 之 解构赋值

ES6 解构赋值

简介

解构赋值是对赋值运算符的扩展。

是一种针对数组或者对象进行模式匹配,然后对其中的变量进行赋值。

在代码书写上简洁且易读,语义更加清晰明了;
也方便了复杂对象中数据字段获取。

解构模型

在解构中,有两部分参与:

  • 解构的源,解构赋值表达式的右边部分。

  • 解构的目标,解构赋值表达式的左边部分。

数组模型的解构(Array)

基本:

		let [a,b,c] = [0,1,2];
		console.log(a,b,c);// 0,1,2

可嵌套:

		let [a,[[d],b,c]] = [0,[[3],1,2]];
		console.log(a,b,c,d);// 0,1,2,3

可忽略:

		let [a, ,c] = [0,1,2];
		console.log(a,c);// 0,2

不完全解构:

		let [a = 0, b] = []; 
		console.log(a,b);// 0 undefined

剩余运算符:

		let [a,...b] = [0,1,2];
		console.log(a,b);// 0  (2) [1, 2]

字符串等:

		let [a,b,c,d,e] = 'china';
		console.log(a,b,c,d,e);// c h i n a

解构默认值:

		let [a = 0] = [undefined];
		console.log(a);// 0

当解构模式有匹配结果,且匹配结果是 undefined 时,会触发默认值作为返回结果。

		let [a = 6, b = a] = []; 
		console.log(a,b); // 6,6
		
		let [a = 6, b = a] = [1]; 
		console.log(a,b); // 1,1
		
		let [a = 6, b = a] = [1, 2]; 
		console.log(a,b); // 1,2
  • a 与 b 匹配结果为 undefined ,触发默认值:a = 6; b = a =6

  • a 正常解构赋值,匹配结果:a = 1,b 匹配结果 undefined ,触发默认值:b = a =1

  • a 与 b 正常解构赋值,匹配结果:a = 1,b = 2


对象模型的解构(Object)

基本:

		let {a,b} = {a:'魏无羡',b:'蓝忘机'};
		console.log(a,b);// 魏无羡 蓝忘机
		
		let {a:b} = {a:'陈情令'};
		console.log(b);// 陈情令

嵌套可忽略:

		let sa = {p:['hello',{y:'world'}]};
		let {p:[x,{y}]} = sa;
		console.log(x);// hello
		console.log(y);//world
		
		let sa = {p:['hello',{y:'world'}]};
		let {p:[x,{}]} = sa;
		console.log(x);// hello

不完全解构:

		let sa = {p:[{y:'world'}]};
		let {p:[{y},x]} = sa;
		console.log(x);// undefined
		console.log(y);// world

剩余运算符:

		let {a,b,...rest} = {a:0,b:1,c:2,d:3};
		console.log(a,b,rest);//0 1 {c: 2, d: 3}

解构默认值:

		let {a=0,b=1} = {a:2};
		console.log(a,b);// 2 1
		
		let {a:aa=6,b:bb=66} = {a:666};
		console.log(aa,bb);// 666  66
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值