Accept any numbers of parameters
In the old days, we can use the `arguments`
variable to get the dynamic parameters that are passed to a function.
const sum = function () {
return Array.from(arguments).reduce((a, b) => a + b, 0);
};
sum(1);
sum(1, 2);
sum(1, 2, 3);
sum(1, 2, 3, 4);
However, most of us aren't aware about the existence of `arguments`
. It has some drawbacks such as
- It's not an array, so we usually have to convert it to array first in order to use
`Array`
methods
- More importantly, it isn't available in arrow functions
The ES6 rest parameter (
`...`
) provides an easier way to work with an unknown numbers of parameters. The
`sum`
function above can be
written as following:
const sum = (...params) => params.reduce((a, b) => a + b, 0);
sum(1, 2, 3, 4, 5);
See also