Вебсправочник
Справочник JavaScript

Остаточные параметры: аргументы функции в массиве

Остаточный параметр собирает оставшиеся аргументы вызова в обычный массив.

Назначение

Остаточный параметр собирает оставшиеся аргументы вызова в обычный массив.

Как это работает

Он располагается последним в списке параметров и может быть только один. В отличие от объекта arguments полученное значение сразу поддерживает методы массива и не включает ранее именованные аргументы.

Пример

function sumFrom(start,...numbers){return numbers.reduce((total,n)=>total+n,start);}
console.assert(sumFrom(10,1,2)===13);
console.assert(sumFrom(10)===10);

Что должно получиться

Первый аргумент задаёт начальную сумму, а остальные поступают отдельным массивом. Отсутствие дополнительных аргументов не приводит к undefined вместо коллекции.

Граница применения и частая ошибка

Не путайте остаточный параметр в объявлении функции со spread в вызове. Одинаковые три точки собирают значения в одном месте и раскрывают их в другом.

Самостоятельная проверка

Добавьте обязательный первый параметр и проверьте, что он не попал в массив остатка. Затем вызовите функцию без дополнительных аргументов: результат должен корректно обработать пустой массив.

JavaScript в песочнице этого сайта не выполняется. Перенесите пример в отдельный учебный файл. Сначала проверьте исходный результат, затем измените входные данные; ошибка проверки означает, что результат отличается от ожидаемого.

Самостоятельный учебный материал. Техническая документация: первоисточник по теме ↗. Если результат отличается, проверьте код и версию браузера.