ES6学习——解构赋值

一.什么是解构赋值?

解构赋值可以理解为赋值操作的语法糖,它是针对数组或者对象进行模式匹配,然后对其中的变量进行赋值。代码书写上言简意赅,语义明确,也方便了对象数据的读取操作。可以减少我们写赋值操作时的代码量。
ES6中只要有某种数据有iterator接口(也就是可以循环迭代),都可以进行数据的解构赋值。

二.使用

1.数组解构

{
	let a,b;
	[a,b] = [1,2];
	console.log(a,b)//输出1,2
}

如果有一个元素定义了,没有赋值:

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

上述例子中,如果想让c有值,可以给c赋一个默认值:

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

如果c也解构赋值了,就会覆盖默认值:

	let a,b,c;
	[a,b,c = 6] = [1,2,3];
	console.log(a,b,c)//输出1,2,3

如果想分割数组:

{
	let a,other;
	[a,...other] =[1,2,3]
	console.log(a);//输出1
	console.log(other)//输出[2,3]
}

如果只想要数组中的某个数据,可以通过写一个逗号作为占位符来实现,如:

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

2.对象解构

	let a,b;
	({a,b} = {a:1,b:2});
	console.log(a,b)//输出1,2

如果不想用规定的属性名,想用自定义的属性名:

	let num1,num2;
	({a:num1,b:num2} = {a:1,b:2});
	console.log(num1,num2)//输出1,2
三.常见使用场景

在项目中,常见的就是后端向前端返回JSON对象,前端想从中获取自己有用的值(解构后端返回的JSON数据),就需要进行解构赋值:

function fn(){
	return{
		"name":"Tim",
		"nameList":[{
			"name":"Mary"
		}]
	}
}
let b = fn();
let {name:person,nameList:[{name:otherperson}]} = b
console.log(person,otherperson)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值