関数の中で arguments
プロパティを参照することで、実際に渡された引数(実引数)の数や値を取得することができます。
これを利用して、可変長のパラメータを扱うことができます。
関数定義のパラメータ(仮引数)として何も記述されていなくても、arguments
プロパティは参照することができます。
function hoge() {
for (var i = 0, len = arguments.length; i < len; ++i) {
console.log(arguments[i]);
}
}
hoge('AAA', 'BBB', 'CCC');
AAA
BBB
CCC
arguments
は配列と同様の length
プロパティを持っていますが、実際には配列ではありません。
あくまで、配列っぽいオブジェクトなので、配列と同様の操作がすべて有効なわけではないことに注意してください。
function hoge(a, b, c) {
console.log(Array.isArray(arguments)); //=> false
console.log(typeof arguments); //=> object
}