Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник JavaScript

Spread syntax

Три точки раскрывают массив или объект на отдельные элементы.

Доступно с: ES2015

Синтаксис

[...iterable] / { ...object } / fn(...args)

Примеры

Копирование и объединение массивов:

const a = [1, 2];
const b = [3, 4];
 
console.log([...a, ...b, 5].join(', '));

Результат:

1, 2, 3, 4, 5

Копия объекта с изменённым полем:

const user = { name: 'Anna', city: 'Berlin' };
const moved = { ...user, city: 'Paris' };
 
console.log(moved.city, user.city);

Результат:

Paris Berlin

Массив как список аргументов:

const numbers = [5, 1, 9];
 
console.log(Math.max(...numbers));

Результат:

9

Примечания

Копия поверхностная: вложенные объекты остаются общими. При одинаковых ключах побеждает тот, что записан позже.

Те же три точки в параметрах функции или в деструктуризации означают обратное — сбор в массив (rest).

См. также

  • Rest parameters — Собирает оставшиеся аргументы функции в массив.
  • Destructuring assignment — Достаёт значения из массива или объекта в отдельные переменные.
  • Array.prototype.concat — Объединяет массивы в новый массив.
  • Object.assign — Копирует свойства из одних объектов в другой.

В учебнике

  • Операторы spread и rest — Три точки в JavaScript — раскрытие массивов и объектов, копирование, объединение и остаточные параметры.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.