JavaScript·100 вопросов

Что такое spread и rest?

Ответ

Операторы spread и rest в JavaScript записываются одинаково в виде трех точек, но выполняют противоположные по смыслу задачи в зависимости от контекста их применения. Они значительно упрощают манипуляции с наборами данных и коллекциями.

Оператор spread выполняет роль распаковщика, разворачивая итерируемые объекты, такие как массивы или строки, в отдельные элементы. С его помощью можно легко объединять массивы, создавая новые коллекции из элементов старых.

Также spread активно применяется для клонирования и дополнения объектов новыми ключами и значениями в литеральной форме, заменяя устаревшие методы объединения данных.

Оператор rest, напротив, выполняет роль сборщика, который объединяет множество разрозненных аргументов в единый массив. Это особенно полезно при создании функций с переменным числом параметров.

Когда точное количество аргументов заранее неизвестно, их удобно перехватить через rest-параметр в сигнатуре функции, чтобы обработать в виде стандартного массива.

Используйте три точки перед именем массива для его распаковки с помощью spread-оператора.
Примените spread в литерале объекта для добавления новых свойств к существующим.
Укажите три точки перед именем параметра в функции для сбора аргументов через rest.
Комбинируйте rest при деструктуризации для сбора оставшихся элементов в отдельный массив.

Тот же механизм успешного сбора данных применяется и внутри деструктуризации. Там можно забрать первый элемент массива в отдельную переменную, а оставшуюся часть упаковать в новый массив с помощью rest-синтаксиса.

Полезен ли этот ответ?

Другие вопросы этой темы

Связанные вопросы из других тем