美文网首页
ES6 rest参数

ES6 rest参数

作者: OnePiece索隆 | 来源:发表于2018-11-24 17:28 被阅读0次

    REST参数(剩余参数)

    MDN:剩余参数语法允许我们将一个不定数量的参数表示为一个数组。
    剩余参数必须是函数参数的最后一个参数,它和 arguments对象之间区别如下:

    • 剩余参数只包含那些没有对应形参的实参,而 arguments 对象包含了传给函数的所有实参。
    • arguments对象不是一个真正的数组,而剩余参数是真正的 Array实例,也就是说你能够在它上面直接使用所有的数组方法,比如 sortmapforEachpop
    • arguments对象有一些附加的属性 (如callee属性)。

    使用场景

    es5实现:
    function sortArguments() {
      var args = Array.prototype.slice.call(arguments); //需要先转成数组
      var sortedArgs = args.sort();
      return sortedArgs;
    }
    console.log(sortArguments(5, 3, 7, 1)); // shows 1, 3, 5, 7
    
    es6实现:
    function sortRestArgs(...theArgs) {
      var sortedArgs = theArgs.sort();
      return sortedArgs;
    }
     
    console.log(sortRestArgs(5,3,7,1)); // shows 1, 3, 5, 7
    

    获取一个不定长度参数的长度

    function fun1(...theArgs) {
      alert(theArgs.length);
    }
     
    fun1();  // 弹出 "0", 因为theArgs没有元素
    fun1(5); // 弹出 "1", 因为theArgs只有一个元素
    fun1(5, 6, 7); // 弹出 "3", 因为theArgs有三个元素
    

    相关文章

      网友评论

          本文标题:ES6 rest参数

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