Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2016年9月.
残余引数構文により、関数が不定数の引数を配列として受け入れることができ、可変長引数関数を JavaScript で表すことができます。
いくつかの追加の構文上の制限があります。
関数定義の最後の引数に ... (3 つの U+002E FULL STOP 文字)の接頭辞を付けると、(ユーザーが提供した)その位置にある残りの引数を標準の JavaScript の配列の中に入れることができます。 最後の引数のみが「残余引数」になることができます。
残余引数は構造分解することができます。これにより、特定の引数の位置を無視することが可能です。
ただし、次のものはすべて構文エラーになります。
残余引数は関数の length プロパティにはカウントされません。
残余引数と arguments オブジェクトの間には、主に 4 つの違いがあります。
この例では、最初の引数が a に、 2 番目の引数が b に割り当てられますので、これらの名前付き引数はふつう通り使われます。
しかし、 3 番目の引数、manyMoreArgs は、 3 番目、 4 番目、 5 番目、 6 番目、~ n 番目 — ユーザーが入れただけの数の引数を持つ配列になります。
以下、値が 1 つしかなくても、最後の引数は配列に入れられます。
以下の例では、 3 番目の引数が提供されていませんが、 manyMoreArgs は配列のままです(ただし空のものです)。
下記では、引数が 1 つしか提供されていないため、 b は既定値の undefined となりますが、 manyMoreArgs 空の配列のままになります。
theArgs は配列なので、 length プロパティを使用して要素数を取得することができます。関数の唯一の引数が残余引数である場合、restParams.length は arguments.length と等しくなります。
次の例では、残余引数を使用して 2 番目の引数から最後の引数までを配列に集めています。それからそれぞれを最初の引数と乗算し、その配列を返します。
Array のメソッドは残余引数に対して使用することができますが、 arguments オブジェクトに対しては使用できません。
残余引数は、引数の集合を配列に変換するために一般的に使用することができる定型コードを削減するために導入されました。
残余引数の登場以前、 arguments は配列メソッドを呼び出す前に通常の配列に変換する必要があります。
残余引数を使用して、通常の配列に簡単にアクセスできるようになりました。
| ECMAScript® 2027 Language Specification # sec-function-definitions |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 2025年9月18日 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.