【JavaScript】函数中的扩展与收集

【JavaScript】函数中的扩展与收集

小牛一刀

let values = [1,2,3,4];

function getSum( ){
    let sum = 0;
    for(let i = 0;i < arguments.length ; ++i){
        sum += arguments[i];
    }
    return sum;
}

1 ,arguments是一个类数组
2,扩展参数:不是传一个数组而是数组中的每一个元素
3,使用扩展运算符(arguments进行迭代)相当于apply( )方法,把函数里面的数组进行拆分

console.log(getSum.apply(null,values));//10
console.log(getSum(...values));//10

使用扩展运算符传参的时候,不影响前面以及后面的使用

console.log(getSum(-1,...values));//9
console.log(getSum(...values,5));//15
console.log(getSum(-1,...values,5));//14
console.log(getSum(...values, ...[5,6,7]));//28

arguments的使用 不影响扩展运算符,扩展运算符只是进行调用

let values = [1 , 2 , 3 , 4]

function countArguments( ){
    console.log(arguments.length);
}
countArguments(-1,...values);//5
countArguments(...values,5);//5
countArguments(-1,...values,5);//6
countArguments(...values,...[5,6,7]);//7

扩展操作符用于命名参数,同时也默认参数

function getProduct(a,b,c = 1){
    return a * b * c;
}
let getSum = (a , b , c=0) =>{
    return a + b + c;
}
console.log(getProduct(...[1,2]));//2
console.log(getProduct(...[1,2,3]));//6
console.log(getProduct(...[1,2,3,4]));//6

console.log(getSum(...[0,1]));//1
console.log(getSum(...[0,1,2]));//3
console.log(getSum(...[0,1,2,3]));//3

收集参数 使用扩展运算发把不同长度独立的参数组合为一个数组

function getSum(...values){
    
    return values.reduce(( x , y ) => x + y , 0);
}
console.log(getSum(1,2,3));//6

收集参数前面还有命名参数,则会收集其余的参数,如果没有则会得到空数组

function ignoreFirst(firstvalue,...values){ //此处写成function ignoreFirst(...values,firstvalue)写法错误
    console.log(values);
}
ignoreFirst( );// [ ]
ignoreFirst(1);// [ ]
ignoreFirst(1,2);// [ 2 ]
ignoreFirst(1,2,3);// [ 2 , 3 ]

收集参数并不影响arguments对象,反映传给函数的参数

function getSum(...values){
    console.log(arguments.length);//3
    console.log(argumnets);//[1,2,3]
    console.log(values);//[1,2,3]
}
console.log(getSum(1,2,3));

总结

花谢花飞花满天,红消香断有谁怜。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值