Get to know MDN better
This page was translated from English by the community. Learn more and join the MDN Web Docs community.
This feature is well established and works across many devices and browser versions. It’s been available across browsers since сентябрь 2016 г..
Синтаксис остаточных параметров функции позволяет представлять неограниченное множество аргументов в виде массива.
Если последний именованный аргумент функции имеет префикс ..., он автоматически становится массивом с элементами от 0 до theArgs.length-1 в соответствии с актуальным количеством аргументов, переданных в функцию.
Существует три основных отличия остаточных параметров от объекта arguments:
Остаточные параметры были введены для уменьшения количества шаблонного кода:
Остаточные параметры могут быть деструктурированы (только массивы). Это означает, что их данные могут быть заданы как отдельные значения. Смотрите Деструктурирующее присваивание.
function f(...[a, b, c]) { return a + b + c; } f(1) // NaN (b и c равны undefined) f(1, 2, 3) // 6 f(1, 2, 3, 4) // 6 (четвёртый параметр не деструктурирован)В этом примере первый аргумент задан как "a", второй как "b", так что эти аргументы используются как обычно. Однако третий аргумент "manyMoreArgs" будет массивом, который содержит 3-й, 4-й, 5-й, 6-й ... n-й аргументы, которые передаст пользователь.
Ниже... даже если передано одно значение последним аргументом, оно всё равно помещается в массив.
Ниже... третий аргумент не был передан, но "manyMoreArgs" всё ещё массив (хотя и пустой).
Поскольку theArgs является массивом, количество элементов в нём определяется свойством length:
В следующем примере, остаточные параметры используются для сбора всех аргументов после первого в массив. Каждый из них умножается на первый параметр и возвращается массив:
Методы Array могут быть использованы на остаточных параметрах, но не на объекте arguments:
Чтобы использовать методы Array на объекте arguments, нужно преобразовать его в настоящий массив.
| ECMAScript® 2027 Language Specification # sec-function-definitions |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 24 мар. 2025 г. by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.