ES6引入了rest参数用于获取函数的多余参数,实际就是替换arguments对象。
1.举一个小例子:
function add (...values){
let sum = 0;
for (var val of values) {
sum += val;
}
return sum;
}
add(2, 5, 3) //输出 10
以上代码利用rest参数可以向该函数传入任意数目的参数
2.再举一个例子:
// arguments的写法
const sortNumbers = () => Array.prototype.slice.call(arguments).sort();
// rest参数的写法
const sortNumbers = (...numbers) => numbers.sort();
3.rest参数中的变量代表一个数组,所以数组特有的方法都可以用于这个变量。
例子:
function push(array, ...items) {
items.forEach(function(item) {
array.push(item);
console.log(item); // 输出 1 2 3
})
}
var a = [];
push(a, 1, 2, 3);
注意:rest参数之后不能再有其他参数(即只能是最后一个参数),否则报错
例子:
function f(a, ...b, c){} // 报错
函数的length属性不包括rest函数
例子:
(function(a) {}).length // 1
(function(...a) {}).length // 0
(function(a, ...b) {}).length //1
你适合学Java吗?4大专业测评方法
代码逻辑 吸收能力 技术学习能力 综合素质
先测评确定适合在学习