ES6 函数参数(默认参数、结构)

2021-04-30 14:53:33 浏览数 (1)

重来没有系统的学过es6,感觉语法和swift 、java、python等语言差不多,今天给我上了一课。

缘起


今天看了一个函数,愣是看的有点蒙。

代码语言:javascript复制
clone ({ zindex = this.commonStyle.zindex   1 } = {}) {

}

最后终于弄明白了,写点总结

ES6函数参数


1、默认值

这个没什么说的,就是传入undefine 的时候使用默认值,注意null不行。

代码语言:javascript复制
function esFn(name = 'zzy') {
  console.log(name);
}
esFn()
esFn(undefined)
esFn(null)
esFn('zzzzy')

查看运行结果:

代码语言:javascript复制
[Running] node "/Users/mac/Desktop/work/low-code/luban-h5/front-end/h5/src/components/core/models/tempCodeRunnerFile.js"
zzy
zzy
null
zzzzy

2、结构

代码语言:javascript复制
function test({name,age = 18}) {
  console.log(name);
  console.log(age);
}


let p = {
  name:'zy'
}

test(p)

查看运行结果:

代码语言:javascript复制
[Running] node "/Users/mac/Desktop/work/low-code/luban-h5/front-end/h5/src/components/core/models/tempCodeRunnerFile.js"
zy
18

就是对于对象等复杂结构结构传入,看代码即可。

3、无限参数

大部分语言都支持

代码语言:javascript复制
function wuxianP(...params) {
  console.log(params);
}

wuxianP(1)
wuxianP(1,'1')
wuxianP(1,'1',[1,1])

查看运行结果:

代码语言:javascript复制
[Running] node "/Users/mac/Desktop/work/low-code/luban-h5/front-end/h5/src/components/core/models/tempCodeRunnerFile.js"
[ 1 ]
[ 1, '1' ]
[ 1, '1', [ 1, 1 ] ]

缘落


代码语言:javascript复制
// 传入对象
//默认值是{}
//结构的默认值zindex 不传默认值this.commonStyle.zindex   1
clone ({ zindex = this.commonStyle.zindex   1 } = {}) {

}

0 人点赞