Где используют spread оператор в JavaScript?
Современный JS ES6+
Spread-оператор (`...`) используют для копирования и объединения массивов/объектов, передачи массива как аргументов и разворачивания итерируемых.
Где применяют
Копирование и объединение массивов
const copy = [...arr];
const merged = [...arr1, ...arr2];
const withNew = [...arr, newItem];Копирование и слияние объектов
const clone = { ...obj };
const extended = { ...obj, newProp: 1 };
const patched = { ...obj, name: 'Bob' }; // перезаписьПередача массива как аргументов
Math.max(...numbers);
fn(...args);Разворачивание итерируемых
const chars = [...'hello']; // ['h','e','l','l','o']
const arr = [...new Set([1,1,2])]; // дедупликация → [1, 2]
const nodes = [...document.querySelectorAll('div')]; // NodeList → массивВ React
<Component {...props} /> // передать все props
setState({ ...state, x: 1 }) // иммутабельное обновлениеНюансы
Копия поверхностная — вложенные объекты остаются общими ссылками.
Коротко для собеседования
Spread ... используют для: копирования/объединения массивов ([...arr]) и объектов ({...obj}), передачи массива как аргументов (Math.max(...nums)), разворачивания итерируемых (строка, Set для дедупликации, NodeList), передачи props в React и иммутабельных обновлений. Копия поверхностная.