length
プロパティで取得できます。すごく基本的なことなのに知りませんでした。
(function () {}).length
// -> 0
(function (a, b, c) {}).length
// -> 3
関数の中では arguments.callee.length
で取得できます。実際に渡された引数の数とは別モノです。
(function (a, b, c) {
return [arguments.callee.length, arguments.length];
})('Hello, World!');
// -> [3, 1]