es6 函数默认参数-对象

注意参数是对象,并且等号左边是解构后的变量,用等号赋值,右边是参数,也就是正常的变量,所以对象用冒号给值

案例1: 是对解构后的变量给默认值

function move({x = 0, y = 0} = {}) {
   return [x, y];
}
//没什么好说的
console.log(move({x: 3, y: 8}));// [3, 8]

//参数直有一个x,所以解构后没有y则使用默认
console.log(move({x: 3}));// [3, 0]

//传递了一个空对象参数,但是解构出来x,y都没有,则使用默认值
console.log(move({}));// [0, 0]

//无参数,会使用参数的默认值也就是{},解析后x,y都没有,则使用默认值
console.log(move());// [0, 0]

案例2: 参数给默认值

function move({x, y} = { x: 0, y: 0 }) {
    return [x, y];
 }
 
 //没什么好说的
 console.log(move({x: 3, y: 8})); // [3, 8]
 
 //传递了一个有x的对象则不使用默认参数{x:0,y:0},但是解构出来后没有y,并且也没有默认值,所以y是undefined
 console.log(move({x: 3})); // [3, undefined]
 
 //参数传递了一个空对象,不使用默认参数。但是没有解构出x,y 。都为undefined
 console.log(move({})); // [undefined, undefined]
 
 //没有传递参数,所以使用默认参数{x:0,y:0}。 都能解构出来,所以都为0
 console.log(move()); // [0, 0]

转载于:https://www.cnblogs.com/sunheng/p/7277645.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值