ES6 - Spread

В этой статье мы познакомимся с оператором spread. По русски он называется оператор расширения, но на мой вкус, это слабо обьясняет что он делает. По английски это значит распылять. Мы будем распылять массив на отдельные елементы либо возвращать остаток.
Итак как выглядит самая часто используемая запись spread? Как мы помним у стрелочных функций нет arguments и мы не можем получить массив аргументов. В этом нам поможет spread.
Мы описали стрелочную функцию getText и использовали вместо аргумента ...args. Это значит возьми все аргументы, которые мы передали и засунь в переменную args. Если мы посмотрим в браузер, то увидим, что в консоли вывелось a,b,c наши три аргумента.
Если же мы укажем отдельно первый аргумент, в то args поместятся все оставшиеся аргументы.
Здесь у нас будет два отдельных аргумента a и массив b c. Это очень удобно, когда мы не знаем какое количество аргументов ожидать.
Второй вариант, когда spread удобен, это когда нам нужно подмерджить 2 массива. В ES5 обычно пишут
Этим самым мы помещаем все элементы второго массива в первый массив
В ES6 мы можем написать
Мы пушим spread второго массива. То есть мы превращаем массив в последовательность елементов и пушим их. Код намного проще для понимания
Еще один вариант использования, это если у нас есть несколько аргументов для функции в виде массива. Например в ES5 у нас был вот такой код
мы использовали apply, чтобы вторым параметром передать массив, как аргументы в функцию
В ES6 мы можем применить spread в момент передачи аргументов в функцию. Тогда они передадутся как последовательность елементов, а не как массив.
В этой статье мы познакомились с оператором spread и увидели, когда его стоит использовать.

Если у вас возникли какие-то вопросы, пишите их в наш телеграмм-чат.