Назад к вопросам
Junior
77
questionbank
В чем разница между операторами spread и rest?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Оператор spread (...) разворачивает итерируемые объекты (массивы, строки) в отдельные элементы, часто используется для создания копий массивов, слияния объектов или передачи аргументов функции. Оператор rest (...) собирает оставшиеся элементы в один массив, используется в деструктуризации или при определении функций для сбора аргументов.
Примеры использования spread:
// Создание копии массива
const arr1 = [1, 2, 3];
const arr2 = [...arr1]; // arr2 = [1, 2, 3]
// Объединение массивов
const arr3 = [4, 5];
const combined = [...arr1, ...arr3]; // combined = [1, 2, 3, 4, 5]
// Передача аргументов функции
function sum(a, b, c) {
return a + b + c;
}
const numbers = [1, 2, 3];
const result = sum(...numbers); // result = 6
Примеры использования rest:
// Сбор оставшихся элементов при деструктуризации массива
const [first, ...restOfArray] = [1, 2, 3, 4]; // first = 1, restOfArray = [2, 3, 4]
// Сбор аргументов функции
function logArguments(arg1, ...restArgs) {
console.log(arg1); // первый аргумент
console.log(restArgs); // массив остальных аргументов
}
logArguments(1, 2, 3, 4); // Выведет 1 и [2, 3, 4]
Ключевое отличие заключается в их назначении: spread расширяет, rest сжимает.