ES6-变量的结构赋值-函数参数

本文探讨了函数参数解构赋值的概念及其在不同情况下的应用,包括数组和对象的解构,并展示了如何利用默认值来增强代码的灵活性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

函数参数的解构赋值

 

function add([x,y]) {
	return x + y;
}
add([1,2]);//3

在上面代码中,函数add的参数表明是一个数组,但在传入参数的那一刻,数组参数就被解构成变量 x 和 y 。

 

 

[[1, 2], [3, 4]].map(([a, b]) => a + b);//[3,7]

函数参数的解构也可以使用默认值。

 

 

function move({x = 0, y = 0} = {}) {
  return [x, y];
}

move({x: 3, y: 8}); // [3, 8]
move({x: 3}); // [3, 0]
move({}); // [0, 0]
move(); // [0, 0]

上面代码中,函数move的参数是一个对象,通过对这个对象进行解构,得到变量 x 和 y 的值,如果解构失败,x 和 y 的值等于默认值。

 

 

function move({x, y} = { x: 0, y: 0 }) {
  return [x, y];
}

move({x: 3, y: 8}); // [3, 8]
move({x: 3}); // [3, undefined]
move({}); // [undefined, undefined]
move(); // [0, 0]

上面代码是为函数 move 的参数指定默认值,而不是为 x 和 y 指定默认值,所以才会得到与前一种写法不同的结果。
undefined会触发函数参数的默认值。

 

 

[1, undefined, 3].map((x = 'yes') => x);// [ 1, 'yes', 3 ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值