ES6函数参数默认值

1.使用数组解构给函数参数传值,这样是按照顺序赋值的

> function f([x=1,y=2,z=3]=[]) {
... return [x,y,z]
... }
> let [x,y,z]=f()
> > x
1
> y
2
> z
3
> [x,y,z]=f([6])
[ 6, 2, 3 ]
> x
6
> y
2
> z
3

给x、y、z默认值时最好后面还给一个空数组,这样不给函数f传值时也不会报错
如果不给空空数组,直接调用函数f,不穿参数就会报错,如下:

> function f([x=1,y=2,z=3]) {
... return [x,y,z]
... }
undefined
> f()
TypeError: Cannot read property 'Symbol(Symbol.iterator)' of undefined
    at f (repl:1:11)

2.使用对象传值

> function f({x=1,y=2,z=3}={}) {
... return {x,y,z}
... }
undefined
> f()
{ x: 1, y: 2, z: 3 }
> f({x:10})
{ x: 10, y: 2, z: 3 }
> f({y:20})
{ x: 1, y: 20, z: 3 }

使用对象时,是按照对象的key解构的而不是按照顺序。
但是最好也是给一个默认的空对象,不然不传值的时候就会报错

> function f({x=1,y=2,z=3}) {
... return {x,y,z}
... }
undefined
> f()
TypeError: Cannot destructure property `x` of 'undefined' or 'null'.
    at f (repl:1:11)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值