重来没有系统的学过es6,感觉语法和swift 、java、python等语言差不多,今天给我上了一课。
缘起
今天看了一个函数,愣是看的有点蒙。
代码语言:javascript复制clone ({ zindex = this.commonStyle.zindex 1 } = {}) {
}
最后终于弄明白了,写点总结
ES6函数参数
1、默认值
这个没什么说的,就是传入undefine
的时候使用默认值,注意null
不行。
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 } = {}) {
}