Operadores spread/rest en javascript

spread

...a
Esparce el array a, tratándolo como una lista

rest

...a
Si el parámetro ...a es una lista, entonces a será un array

Ejemplo

function add(...x) {// ...a es una lista, entonces a será un array
  return x.reduce((s, i) => s + i, 0);
}
console.log(add(...[1, 2, 3], ...[4, 5]));// esparce los arrays como listas
See the Pen JS spread/rest by Rulo Kobashikawa (@akobashikawa) on CodePen.

Referencias