JavaScript函数的Arguments

arguments 描述

arguments对象是全部函数中可用的局部变量。你能够使用arguments对象在函数中引用函数的参数此对象包含传递
 函数的每一个参数的条目第一个条目的索引从0开始。例如,若是一个函数传递了三个参数,你能够参考它们以下:

    arguments[0]
    arguments[1]
    arguments[2]
    
    arguments 对象仅在函数内部有效,在函数外部调用 arguments 对象会出现一个错误。
    arguments的typeof返回’object‘。
    console.log(typeof arguments); // 'object'
复制代码

能够使用索引来肯定各个arguments的类型

参数也能够被设置:对应传递给函数的参数 实参集合下面重点说一下不定项求和

不定项求和例1

<script>
    //不定项求和,
    //参数传递sum2(1,2) sum2(2,3,4,5,6)
     function sum2() {
        //全部实参都在argumments中存储,咱们要作的是 把arguments中的每一项加起来
        //而后把结果返回出去
        var num = 0;   //=var 一个变量用来接收结果
        for (var i = 0; i < arguments.length; i++) {
            // arguments[i] 函数的每一个参数的条目第一个条目的索引从0开始i表明从0开始
            num += arguments[i] //结果累加
        }
      return num
    }
    var res1 = sum2(1, 2)//3
    var res2 = sum2(2, 3, 4, 5, 6)//25
    console.log(res1,res2)
 </script>
复制代码

不定项求和例2

<script>
  //不定项求和(2+5)
    function sum2() {
      var num = 0;
      for (var i = 0; i < arguments.length; i++) {
      if (typeof arguments[i]=='number'&& !isNaN(arguments[i])) {
         //先利用typeof判断 过滤掉非数字类型,由于NaN也属于数字类型防止加起来结果为NaN
         //因此须要使用isNaN判断是否为非有效数字
           num += arguments[i];//结果累加
         }
       }
          return num;
      }
    console.log(sum2('1', 'w', 2, 5, 'q',NaN)) //7
</script>
复制代码

不定项求和例3

<script>
 //思路==>因为结果须要把字符串的数字也相加因此先把每一项转化为数字类型,在判断数字类型的项是否为非有效数字
  function sum() {
    var str = 0;
    for (var i = 0; i < arguments.length; i++) {
        var col = Number(arguments[i])
        if (!isNaN(col)) {
            str += col;
        }
        null;
    }
    return str;
}
let total = sum(10, 20, '30', '哈哈哈', '40',NaN,undefined);//100
console.log(total);
复制代码

注意

1.函数别忘记返回值(return)不然结果为undefined
     2.ES6中的箭头函数没有本身的 arguments 对象 
     3.ES6中的箭头函数没有本身的 this 复制代码
相关文章
相关标签/搜索