扩展运算符(…)
当我们在定义一个方法,但是不确定其参数的个数时,我们就可以用扩展运算符作为参数。
以前在定义方法时,参数要确定个数,如下:
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运算符适用于:
知道前面的一部分参数的数量,但对于后面剩余的参数数量未知的情况
。