Javascript |(四)解构赋值


解构赋值是ES6新增的特性。

数组的解构

下面是数组解构的一些例子。

const [x, y, z] = [1, 2, 3]; // 1, 2, 3
const [a, [b, c]] = [1, [2, 3]]; // 1, 2, 3
const [ , , m] = [1, 2, 3]; // 3

  

对象的解构

下面是对象解构的一些例子。如果获得不存在的属性,会得到undefined,同时报错。

const obj = {
	name: 'jim',
	age: 10,
	info: {
	  school: '山东大学',
	  pet: 'dog'
	}
}

// info不能获得,会报错
const {name, age:year, info:{school, sex = '男'}} = obj;
name, year, school, sex; // 'jim', 10, '山东大学', sex

有些时候,如果变量已经被声明了,再次赋值的时候,正确的写法也会报语法错误。这是因为JavaScript引擎把{开头的语句当作了块处理,于是=不再合法。解决方法是用小括号括起来。

let x, y;
{x, y} = {x:1, y:2}; // 'Unexpected token ='
({x, y} = {x:1, y:2}); // 1, 2

  

使用场景

  • 交换两个数:
const a = [1, 2];
[a[0], a[1]] = [a[1], a[0]];
a // [2, 1]
  • 如果一个函数接收一个对象作为参数,那么,可以使用解构直接把对象的属性绑定到变量中。
function greet({firstName, secondName='James'}){
	return `Hello, my name is ${firstName} ${secondName}!`;
}
greet({firstName: 'LeBron'}); //Hello, my name is LeBron James!
greet({firstName: 'Kobe', secondName: 'Bryant'}); //Hello, my name is Kobe Bryant!

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值