Skip to main content

spread під час виклику функції

Оператор spread (...) під час виклику функції розкриває (розгортає) масив (або інший ітерований об'єкт) в окремі аргументи функції.


Синтаксис:

javascript
myFunc(...array)

еквівалентно

javascript
myFunc(array[0], array[1], array[2], ...)

Приклад:

javascript
function sum(a, b, c) { return a + b + c; } const numbers = [1, 2, 3]; // spread розкриває масив в окремі аргументи console.log(sum(...numbers)); // 6

Без spread це виглядало б так:

javascript
sum(numbers); // NaN - тому що функція очікує три числа, а не один масив

Можна використовувати з будь-якими ітерованими структурами:

Наприклад, зі строками:

javascript
function logChars(a, b, c) { console.log(a, b, c); } logChars(...'abc'); // a b c

Комбінування spread і звичайних аргументів:

javascript
function greet(greeting, name, punctuation) { console.log(`${greeting}, ${name}${punctuation}`); } const data = ['Привіт', 'Богдан']; greet(...data, '!'); // Привіт, Богдан!

Різниця між spread і rest:

СинтаксисДе використовуєтьсяЩо робить
... (spread)під час виклику функції або створення масиву/об'єктарозкриває масив/об'єкт
... (rest)у визначенні функціїзбирає аргументи в масив

Приклад:

javascript
function showArgs(...args) { // rest збирає console.log(args); } const nums = [1, 2, 3]; showArgs(...nums); // spread розкриває -> [1, 2, 3]

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.