JavaScript-函数篇-001(Javascript变参函数)

来源:互联网 发布:stm32 const 数组 编辑:程序博客网 时间:2024/06/06 23:56
  我们平时在做前端开发涉及到一些Javascript时,可能会遇到参数不固定的Javascript函数,如:exp(a)、 exp(a,b),
需要说明的是函数名相同,但传入的参数不同,
那么我们可能会这样想:定义两个函数,一个只含一个函数,而另一个有两个函数,


gitHub地址:https://github.com/liYinFeng2/javaScript/blob/master/JavaScript%E5%88%86%E7%B1%BB/%E5%87%BD%E6%95%B0%E7%AF%87/000_Javascript%E5%8F%98%E5%8F%82%E5%87%BD%E6%95%B0.txt




但是,在 Javascript里面编写函数是不能同名的,那么我们该怎么办呢?下面就介绍一种方法。
比如我们要对两个数求和,我们可以封装一个如下的函数:
 function sum(a,b){
   return a+b;
 }
 但这是我们要对3个数求和呢?那这样


 function sum(a,b,c){
  return a+b+c;
 }
 
 但要对8个数求和或者更多呢?我们不可能一直这样写下去,所以我们需要一种能够处理参数个数不同的函数,
 比如还拿求和来说,当我们传入两个参数时能够对两个数求和,当传入6个参数时能够对6个数求和,
 因此这里就引入了变参函数。
 
 在 JavaScript函数的内部,可以使用一个名为arguments的对象,其中包含了调用函数的时候,传递给该函数的所有参数,
 arguments虽然不是数组,但我们可以把它做为数组来使用,当然也可以使用下标,argument[0]表示接受的第一个参数,
 arguments[1]表示接受的第二 个参数,,,,,以此类推;另外,arguments对象有一个length属性,
 可以用来代表参数的个数,用法就是arguments.length。
 
 function sum(){
    var result = 0;
    console.log(arguments)
    for(var i = 0;i<arguments.length;i++){
        result += arguments[i];
    }
    return result;
 }
           
  alert(sum(20,90));         //110
  alert(sum(20,90,6,6,6,4)); //132