Javascript, возможно, один из самых важных языков сегодня и завтра. Он все еще развивается, ECMA6 представил несколько интересных новых функций; ... - одна из этих новых функций Javascript. Его можно использовать двумя разными способами; как spread operator ИЛИ как rest parameter.

И остаточный параметр, и оператор спреда как бы противоположны друг другу.

Параметр Rest используется для сбора элементов в массив, а оператор Spread используется для разделения элементов массива на отдельные элементы.

Давайте не будем тратить много времени на определения, давайте запрограммируем и посмотрим, как они работают.

Предположим, у нас есть такая функция.

Функция, которая может принимать любое число. аргументов, первые аргументы всегда будут множителем, а остальные будут числами, которые будут умножены на множитель.

Как мы видим выше, три точки перед «theArgs». Здесь эти три точки представляют оператор отдыха, и это означает, что все остальные аргументы, кроме множителя, будут собраны в массиве с именем «theArgs».

Поскольку «theArgs» является массивом, мы помещаем в него метод карты.

И мы сохраняем новый выходной массив в переменной «arr».

В этом случае 2 - это множитель, а остальные аргументы будут собраны в массиве theArgs.

theArgs = [1,2,3];

и да, новый массив, возвращенный функцией multiplyby, будет в "arr".

arr = [2,4,6] //output

Итак, для параметра rest точки буквально означают «собрать оставшиеся параметры в массив».

Надеюсь, это должно было внести некоторую ясность.

Давайте посмотрим на оператор Spread.

Мы видели, как собирать параметры в массив, но иногда нам приходится делать прямо противоположное, именно здесь нам нужен оператор распространения.

Несколько важных случаев использования оператора спреда.

Добавление элементов существующего массива в новый массив

Да, оператор распространения может очень легко выполнить эту работу. Как мы видим в приведенном выше примере. Не записывая значения «certsToAdd», просто ставя три точки (…) с именем массива, мы можем легко добавить его элементы в новый массив.

Итак, как следует из названия, он распространяет элементы certsToAdd в «сертификации».

Передача элементов массива в качестве аргументов функции.

Предположим, у нас есть функция, как указано выше, которая принимает три параметра и записывает их сумму в консоль.

И у нас есть массив из трех чисел, но передача его элементов функции может заставить нас написать одну или две дополнительные строки кода, здесь оператор распространения делает это за нас всего на три точки (…).

as we will pass (...args) as an parameter to the function, it will spread its elements into a list of arguments.  

Чтобы скопировать массив

Копирование массива - не сложная задача, но оператор спреда дает нам преимущество, так как иногда мы не хотим копировать его по ссылке.

Да, в приведенном выше примере мы копируем «arr» в «arr2», но поскольку мы используем оператор распространения, его элементы «arr» расширения в «arr2», которые не копируются по ссылке, фактически копируются по значению.

Надеюсь, моя работа помогла в понимании оператора отдыха и оператора распространения :)