剩余参数的MDN定义:
剩余参数语法允许我们将一个不定数量的参数表示为一个数组。
语法:
function(a, b, ...theArgs) {
// ...
}
剩余参数的本质:
剩余参数是一个数组,即使没有值,也是一个空数组
(function add(a, ...args) {
console.log(Array.isArray(args)); //true
})(1);
既然剩余参数是一个数组,那就可以在它上面直接使用所有的数组方法和属性,例如:
function sum (first, ...args) {
console.log(first); // 10
console.log(args.length); //3
}
sum(10, 20, 30);
简单应用:
利用剩余参数可以定义一个形参数量不固定的求和函数
const sum = (...args) => {
let total = 0;
args.forEach((item) => {
total += item;
});
return total;
};
console.log(sum(10, 20)); // 30
console.log(sum(10, 20, 40)); // 70
console.log(sum(10, 20, 40, 50, 60)); // 180