扩展运算符和 rest 运算符

扩展运算符(…)

当我们在定义一个方法,但是不确定其参数的个数时,我们就可以用扩展运算符作为参数。
以前在定义方法时,参数要确定个数,如下:

    function fn(a, b, c) {
        console.log(a);
        console.log(b);
        console.log(c);
        console.log(d);
    }
    fn(1, 2, 3);
//程序会报错

有了扩展运算符,就不用担心报错的问题了。代码可以这样写:

function fn(...arg) {   //当不确定方法的参数时,可以使用扩展运算符
    console.log(arg[0]);
    console.log(arg[1]);
    console.log(arg[2]);
    console.log(arg[3]);
}
fn(1, 2, 3); //方法中定义了四个参数,但只引用了三个参数,ES6 中并不会报错。

rest运算符

rest 在英文中指的是剩余部分(不是指休息),它也用…(三个点)来表示

    function fn(first, second, ...arg) {
        console.log(arg.length);
    }
    fn(0, 1, 2, 3, 4, 5, 6);  //调用函数后,输出结果为 5

上方代码的输出结果为 5。 调用fn()时,里面有七个参数,而arg指的是剩下的部分(因为除去了firt和second)。

从上方例子中可以看出,rest运算符适用于:知道前面的一部分参数的数量,但对于后面剩余的参数数量未知的情况