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参数是数组实例,数组特有的方法都可以使用。