Источник: Nuances of Programming
Синтаксис spread — это новое дополнение в JavaScript ES6. Он принимает итерируемый объект (например, массив) и расширяет его на отдельные элементы.
Синтаксис spread часто используется для поверхностного копирования объектов JS, делая код компактным, лаконичным и более удобным для восприятия человека.
Синтаксис
Синтаксис spread обозначается тремя точками … .
let array = [...value ]
Примеры
Массив — самая распространенная структура данных, поэтому в примерах будем рассматривать именно ее.
1. Копирование массива
В массиве array2 содержатся элементы, скопированные из массива array1 . Любые изменения в массиве array1 не будут отражены в массиве array2 и наоборот.
Если бы использовался простой оператор присваивания, то массиву array2 была бы присвоена ссылка на массив array1 и изменения в одном массиве отражались бы на другом, что в большинстве случаев нежелательно.
2. Вставка элементов одного массива в другой
Синтаксис spread задействуется для добавления одного массива после любого элемента второго массива. То есть для синтаксиса spread нет никаких ограничений на то, что десерты массива desserts добавляются только в начало или только в конец массива desserts1 .
3. Передача массива в качестве аргументов
function multiply (number1, number2, number3 ) {
console .log(number1 * number2 * number3);
}
let numbers = [1 ,2 ,3 ];
multiply(...numbers);
Вместо того чтобы передавать каждый элемент, например numbers[0] , numbers[1] и т. д., синтаксис spread позволяет передавать элементы массива в качестве отдельных аргументов.
//Передача в объект Math элементов массива в качестве аргументов let numbers = [1 ,2 ,300 ,-1 ,0 ,-100 ];
console .log(Math .min(...numbers));
Объект Math в Javascript не принимает в качестве аргумента ни одного массива. А вот с помощью синтаксиса spread такая передача массива становится возможной: массив расширяется на несколько аргументов всего одной строкой кода.
Читайте также:
Перевод статьи Muhammad Hasan : What are three dots (…) in Javascript