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 複製代碼
相關文章
相關標籤/搜索