美文网首页
rest参数与arguments伪数组

rest参数与arguments伪数组

作者: GoFzy | 来源:发表于2019-03-08 17:48 被阅读0次

    一、argumens伪数组

      JavaScript中,arguments对象是比较特别的一个对象,实际上是当前函数的一个内置属性。也就是说所有函数都内置了一个arguments对象,arguments对象中存储了传递的所有实参。arguments是一个伪数组,因此及可以进行遍历,例如我们要求多个数之和时,就可以用到arguments:

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

      其中需要注意的时arguments虽然可以使用length属性,且length属性会根据传入实参的变化而变化,但是arguments并不是数组,因为它并不能使用Array构造函数中原型对象prototype的方法,举个小例子:

      var arr = new Array(1,2,3,4,5);
      arr.forEach(function{...任意操作..});
      function random(){
      arguments.forEach(function(){...任意操作...}) //此时浏览器就会报错
    }
    

    二、rest参数

      ES6中的rest参数与argument是伪数组作用相类似,都可以用来存储所以传入的实参,形式为(...变量名),不同的是该变量名是一个数组。同样还是多个数字求和:

    function sum(...values){
      let sum;
      for(var val of values){
        sum += val;
      }
      return sum;
    }
    

      此外还要注意rest参数之后不能再有其他参数即function f(a,...b,c)就会报错

    相关文章

      网友评论

          本文标题:rest参数与arguments伪数组

          本文链接:https://www.haomeiwen.com/subject/koqdpqtx.html