美文网首页
arguments ---rest参数

arguments ---rest参数

作者: day_day_up | 来源:发表于2017-04-02 13:29 被阅读0次

es5写法

由于JavaScript函数允许接收任意个参数,于是我们就不得不用arguments来获取所有参数:

function foo(a, b) {
    var i, rest = [];
    if (arguments.length > 2) {
        for (i = 2; i<arguments.length; i++) {
            rest.push(arguments[i]);
        }
    }
    console.log('a = ' + a);
    console.log('b = ' + b);
    console.log(rest);
}
foo(1,2,3,4,5,6,7) 

es6写法

rest参数只能写在最后,前面用...标识,从运行结果可知,传入的参数先绑定a、b,多余的参数以数组形式交给变量rest,所以,不再需要arguments我们就获取了全部参数。
如果传入的参数连正常定义的参数都没填满,也不要紧,rest参数会接收一个空数组(注意不是undefined)。
因为rest参数是ES6新标准,所以你需要测试一下浏览器是否支持。请用rest参数编写一个sum()函数,接收任意个参数并返回它们的和

function foo(a, b, ...rest) {
    console.log('a = ' + a);
    console.log('b = ' + b);
    console.log(rest);
}

foo(1, 2, 3, 4, 5);
// 结果:
// a = 1
// b = 2
// Array [ 3, 4, 5 ]

foo(1);
// 结果:
// a = 1
// b = undefined
// Array []

相关文章

  • 尾调用与尾递归---->节省内存--->解决堆栈溢出

    函数的扩展 rest参数 rest参数用于获取函数的多余参数,不需要使用arguments对象。rest参数搭配的...

  • arguments ---rest参数

    es5写法 由于JavaScript函数允许接收任意个参数,于是我们就不得不用arguments来获取所有参数: ...

  • 3点运算符

    用途 rest(可变)参数用来取代arguments 但比 arguments 灵活,只能是最后部分形参参数fun...

  • ES6 - rest 参数 与 arguments 对象

    rest 参数与 arguments 对象的区别:1)rest 参数只包含那些没有对应形参的实参,而 argume...

  • ES6学习(5)

    设置函数参数的默认值 rest参数:用来获取函数的实参,用于代替arguments,arguments是一个伪数组...

  • ES6 rest参数和扩展运算符

    一、rest参数 ES6 引入 rest 参数,用于获取函数的实参,用来代替 arguments 1. ES5 获...

  • ES6三点运算符19-10-17

    用途:1.rest(可变)参数* 用来取代arguments单笔arguments 灵活,使用三点运算符必须放在最...

  • ES6语法(一) - 展开运算符

    1. rest参数 ...符号可以替代ES6以前的arguments对象 定义:rest参数是一个数组,包含自它之...

  • ES6对函数的拓展

    1、rest参数(形式为“...变量名”),用于获取函数的多余参数,这样就不需要使用arguments对象了。 2...

  • rest参数与arguments伪数组

    一、argumens伪数组   JavaScript中,arguments对象是比较特别的一个对象,实际上是当前函...

网友评论

      本文标题:arguments ---rest参数

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