JavaScript
Операторы распространения и отдыха JavaScript
Они оба используют три точки, ..., какая разница?
Введение
В JavaScript оператор расширения и оператор остатка — это полезные функции, которые включают работу с массивами и аргументами функций. Хотя они могут показаться похожими, у них разные варианты использования и поведение.
- Оператор спреда (…)
Оператор расширения, представленный тремя точками (…), в основном используется для расширения элементов массива или объекта. Это позволяет вам распространять содержимое итерируемого объекта (например, массива или строки) в новый массив или вызов функции.
Вот несколько вариантов использования оператора спреда:
- Расширение массива: его можно использовать для создания нового массива путем объединения существующих массивов или добавления новых элементов в массив.
- - Распределение вызовов функций: он может передавать элементы массива как отдельные аргументы функции.
- - Распространение объектов: он может создать новый объект, объединив свойства нескольких объектов или добавив новые свойства.
Примеры использования:
const array1 = [1, 2, 3]; const array2 = [4, 5, 6]; const combinedArray = [...array1, ...array2]; // [1, 2, 3, 4, 5, 6] function sum(a, b, c) { return a + b + c; } const numbers = [1, 2, 3]; const result = sum(...numbers); // 6 const obj1 = { x: 1, y: 2 }; const obj2 = { z: 3 }; const mergedObj = { ...obj1, ...obj2 }; // { x: 1, y: 2, z: 3 }
2. Оператор Rest (…)
Оператор rest, также представленный тремя точками (…), используется в параметрах функции для представления неопределенного числа аргументов в виде массива. Он позволяет записывать несколько аргументов функции в один массив.
Вот пример использования оператора rest:
function sum(...numbers) { let total = 0; for (const number of numbers) { total += number; } return total; } const result = sum(1, 2, 3, 4, 5); // 15
В этом примере оператор rest, …numbers, собирает все переданные аргументы функции и группирует их в массив с именем numbers. Это позволяет обрабатывать произвольное количество аргументов внутри функции.