es6常用特性———函数扩展(rest参数)

1.参数默认值

在调用函数时,如果没有提供该参数,则使用默认值 。
在es5中给参数添加默认值如下:

function show(a, b, c) {
    if (c === undefined) {
        c = 0;
    }
    console.log(a + b);
}
show(1, 2);  //3

es6中为函数添加默认值如下:

function show(a, b, c=0) {
    console.log(a + b);
}
show(1, 2);//3

2.rest参数

rest 参数接受函数的多余参数,组成一个数组,其必须作为函数的最后一个参数。函数的 length 属性,不包括rest参数

function arr(a, b, ...rest) {
    console.log(rest);
}
arr(1, 2, 3, 4, 5, 6, 7); //3 4 5 6 7
 console.log(arr.length); //2

rest参数和arguments对象的区别:

1)rest参数只包括那些没有给出名称的参数,arguments包含所有参数。

2)arguments对象是伪数组,所以为了使用数组的方法,必须使用Array.prototype.slice.call(arguments)先将其转为数组。而rest参数是数组实例,数组特有的方法都可以使用。

你可能感兴趣的:(ES6)