В чём суть
Spread (...) разворачивает итерируемое в элементы или копирует собственные перечисляемые свойства объекта.
Подробности
Частые сценарии: копия, объединение, передача элементов массива как аргументов.
const arr1 = [1, 2, 3];
const arr2 = [...arr1];
const mergedArray = [...arr1, 4, 5, 6];
const obj1 = { a: 1, b: 2 };
const obj2 = { ...obj1 };
const mergedObject = { ...obj1, c: 3, d: 4 };
const sum = (x, y, z) => x + y + z;
console.log(sum(...[1, 2, 3]));
Это поверхностная копия: вложенные объекты остаются общими ссылками.
Итог
Spread упрощает копии/слияния и вызовы функций; помните про shallow copy.