内置对象的扩展-4

  1. 1. 函数参数的默认值
  2. 2. rest 参数

摘要:

函数参数的默认值

ES6 允许为函数的参数设置默认值,即直接写在参数定义的后面。如果参数不传值,则为默认值,如果传入undefined,将触发该参数等于默认值,null则没有这个效果。

  • 定义了默认值的参数,应该是函数的尾参数,否则无法省略。
  • 指定了默认值以后,函数的length属性,将返回没有指定默认值的参数个数。
1
2
3
4
5
6
function log(x, y = 'World'){
console.log(x, y);
}
log('Hello') // Hello World
log('Hello', 'China') // Hello China
log('Hello', '') // Hello

rest 参数

rest 参数(形式为...变量名),用于获取函数的多余参数,rest 参数搭配数组变量,将多余的参数放入数组中。

  • 注意,rest 参数之后不能再有其他参数,否则会报错。
  • 函数的length属性,不包括 rest 参数。
1
2
3
4
5
6
7
8
function add(...values) {
let sum = 0;
for (var val of values) {
sum += val;
}
return sum;
}
add(2, 5, 3) // 10
true