JavaScript中的声明展开和剩余参数
【JavaScript中的声明展开和剩余参数】在es6
中, (...)
可以用作声明展开和剩余参数
在es5
中,我们可以用apply()
函数把数组转化成参数。es6
也有对应的方法,展开运算符(...)
用作展开运算符时
function sum(x = 1, y = 2, z = 3) {
return x + y + z;
}
let params = [3, 4, 5];
// es5 apply() 把数组转换成参数
console.log(sum.apply(undefined, params))
// es6 展开运算符(...)把数组转换成参数
console.log(sum(...params));
=> 12
用作剩余参数时 在函数中,展开运算符
(...)
也可以代替arguments
,这时充当剩余参数使用function restParam(x, y, ...a){
return (x + y) * a.length
}console.log(restParam(1, 2, ''hello", true, 7))=>9
不过也可以通过其他方式去实现剩余参数的功能
function restParam(x, y){
// 这里表示从下标值为2的参数开始切割,并把切割后的参数转换成数组,对于es6中的展开运算符是一个逆过程
var a = Array.prototype.slice.call(arguments, 2)
return (x + y) * a.length
}
console.log(restParam(1, 2, ''hello", true, 7))=>9
推荐阅读
- 热闹中的孤独
- JS中的各种宽高度定义及其应用
- 我眼中的佛系经纪人
- 《魔法科高中的劣等生》第26卷(Invasion篇)发售
- Android中的AES加密-下
- 事件代理
- 放下心中的偶像包袱吧
- C语言字符函数中的isalnum()和iscntrl()你都知道吗
- C语言浮点函数中的modf和fmod详解
- C语言中的时间函数clock()和time()你都了解吗