Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про JavaScript: spread, operator, rest

Чем отличается spread от rest оператора?

Вопрос проверяет понимание одного синтаксиса ... в разных контекстах и работу с аргументами и структурами данных.

Короткий ответ

spread используется для раскрытия элементов массива или объекта. rest используется для сбора элементов в массив или объект. Визуально это один и тот же ..., но смысл зависит от места использования. spread чаще применяют при копировании и объединении данных, rest — в параметрах функций и деструктуризации

Длинный ответ

Оператор ... имеет два разных семантических значения.

Определение

  • Spread — раскрывает элементы структуры.

  • Rest — собирает несколько элементов в одну переменную.

Spread оператор

Используется при:

  1. Копировании массивов и объектов.

  2. Объединении данных.

  3. Передаче аргументов в функцию.

const arr = [1, 2, 3];
const copy = [...arr];

const obj = { a: 1 };
const extended = { ...obj, b: 2 };

Передача аргументов:

const nums = [1, 2, 3];
Math.max(...nums);

Rest оператор

Используется при:

  1. Параметрах функции.

  2. Деструктуризации.

function sum(...numbers) {
  return numbers.reduce((a, b) => a + b, 0);
}

В деструктуризации:

const [first, ...rest] = [1, 2, 3];

Важный нюанс

  1. Spread создаёт поверхностную копию.

  2. Вложенные объекты копируются по ссылке.

Вывод

Spread — это «развернуть», rest — это «собрать». Один синтаксис, но разные задачи и контексты применения.

Уровень

  • Рейтинг:

    5

  • Сложность:

    4

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#spread

#operator

#rest

Подпишись на React Developer в телеграм