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 2015年7月.
* Some parts of this feature may have varying levels of support.
arguments は配列風 (array-like) オブジェクトであり、関数に渡された引数の値を含んでおり、関数内からアクセスすることができます。
メモ: 最近のコードでは、残余引数が推奨されます。
arguments オブジェクトはすべての(アロー関数ではない)関数内で利用可能なローカル変数です。arguments オブジェクトを使うことにより、関数内で関数の引数を参照できます。このオブジェクトは、関数に渡された各引数に対する入力を含みます。最初の入力の添字は 0 から始まります。
たとえば、もし関数に 3 つの引数が渡されたなら、次のようにその引数を参照できます。
argumentsオブジェクトは、形式的に宣言された引数より多くの引数で呼び出された関数(可変長引数関数と呼ばれる)で有用です。例えば Math.min() が該当します。この例の関数は任意の数の文字列引数を受け取り、最も長い文字列を返します。
関数が呼び出された際の引数の数を数えるには、 arguments.length を使用することができます。代わりに、関数が宣言上受け入れる引数の数を数えたい場合は、その関数の length プロパティを確認してください。
それぞれの位置の引数には、設定したり再代入したりすることもできます。
厳格モードでない関数で、単純な仮引数のみがある場合(すなわち、残余引数、デフォルト引数、分割引数ではない場合)、 arguments オブジェクトで引数に新しい値を代入すると、仮引数と同期します。
厳格モードでない関数で、残余引数、デフォルト引数、構造分解の引数が渡されると、関数の本体で引数の変数に新しい値が代入されても、 arguments オブジェクトと同期されません。複雑な引数を持つ厳格モードでない関数の arguments オブジェクトは、関数が呼び出されたときに関数に渡された値を常に反映します。
これは、渡す引数の型に関係なく、すべての厳格モード関数が示すのと同じ挙動です。つまり、関数の本体内で引数に新しい値を代入しても、 arguments オブジェクトには一切影響しません。同様に、 arguments のインデックスに新しい値を代入しても、引数の値には影響しません。これは、関数が単純な引数のみを持つ場合でも同様です。
メモ: 残余引数、デフォルト引数、または構造分解引数を受け取る関数定義の本体で "use strict"; ディレクティブを記述することはできません。そうすると構文エラーが発生します。
arguments は配列風オブジェクトです。すなわち、 arguments が length プロパティと 0 から始まる添字のプロパティを持っているものの、 Array の組み込みメソッド、例えば forEach() や map() を持っていないということです。ただし、slice()、Array.from()、またはスプレッド構文のいずれかを使用して、実際の Array に変換することができます。
一般的な用途では、配列風オブジェクトとして使用すれば十分です。なぜなら、反復可能オブジェクトであることに加え、length プロパティと数値の添字を持っているからです。例えば、Function.prototype.apply() は配列風オブジェクトを受け入れます。
この引数が所属する、現在実行中の関数を参照します。厳格モードでは禁止されています。
arguments.length関数に渡された引数の数を示します。
arguments[Symbol.iterator]()新しい配列イテレーターオブジェクトを返します。これは、 arguments のそれぞれの添字の値を処理します。
この例では、複数の文字列を連結する関数を定義します。この関数の唯一の仮引数は、連結する項目を区切る文字を指定する文字列です。この関数は次のように定義されます。
この関数へは好きな数だけ引数を渡すことができます。これはリスト中のそれぞれの引数を使用した文字列リストを返します。
この例では、リストのための HTML を含む文字列を作る関数を定義します。この関数の唯一の公式な引数は文字列で、 "u" を指定すると順序なし(中黒付き)リスト、 "o" を指定すると順序付き(番号付き)リストになります。関数は次のように定義します。
この関数には任意の数の引数を渡すことができ、それぞれの引数を指定された型のリストに項目として追加します。例を示します。
typeof 演算子は、arguments で使用された場合、'object' を返します。
個々の引数の型は arguments をインデックス指定することで特定できます。
| ECMAScript® 2027 Language Specification # sec-arguments-exotic-objects |
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.