ES6函数解构赋值默认值

本文探讨了ES6中函数参数解构赋值的默认值行为。通过示例代码,解释了m1如何在未传入参数时使用解构赋值的默认值,等价于为x和y分别赋值1。而m2在无参数传递时,其默认值是一个空对象。总结指出m1设定了解构赋值的默认值,而m2仅设定了函数参数的默认值。

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

代码:

    const m1=({ x=1 , y=1 }= { } )=>
    console.log(x+" "+y);
    
    const m2=({ x , y } = { x:1 , y:1 } )=>
    console.log(x+" "+y);
以上两段表达式的区别?
  • m1是默认了一个解构赋值, m2是给函数设置了一个默认值是两个属性。
写法
m1( ); // log:1 1
m2( ); //log:1 1
  • m1在在没有传入参数时,程序进行解构赋值,给参数设定默认值的,等同于代码:const {x=1,y=1}={}
    • 因为在解构的时候没有给赋值,故而程序解析使用默认值x=1,y=1
  • m2在没有传入参数时,程序进行解析时,等同于代码:
const test={
	x:1,
	y:1
}
const {x,y}=test;
写法2
m1( {} )// log:1 1
m2( {} )//log: undefined undefined
  • m1: 和上面相同
  • m2: 对参数进行了赋值,但赋值的是一个空对象;
  • 代码:
    let x,y;
    console.log(x,y);// undefined undefined;
    
    • 相当于对变量进行初始化没有赋值,所以是undefined;

结论:

  • m1的默认值是一个空对象,但设置了解构时的默认值
  • m2的默认值时一个具体的属性,但没有设置解构时的默认值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值