ES6 has a handy feature called the Spread/Rest operator notated as .... The reason is has two names is because based on the use, it can do two different things.
For example, we can spread an array of values into a function parameters.
function myFunction(a, b, c) {
console.log(a, b, c);
}
myFunction(...[1, 2, 3]); // outputs 1, 2, 3We can also spread one array into another to improve array concatenation like so:
const a = [1, 2];
const b = [3, 4]'
const c = [...a, ...b];
console.log(c); // Results in [1, 2, 3, 4]You can also use the operator to gather items into an array. A common usage of this is accepting extra arguments into a function
function myFunction(one, ...args) {
console.log(args);
}
myFunction(1, 2, 3); // prints 1, [2, 3]For more info, check the MDN docs
