宣言時の引数と渡された引数の比較

function f(arg){
  // 宣言時の引数の数と渡された引数の数の比較
  // 左辺は関数自身Functionオブジェクトのlength
  // 右辺はローカル変数argumentsオブジェクトのlength
  return arguments.callee.length==arguments.length;
}
f(1); //true
f(1,2); //false

arguments.calleeは実行中関数への参照なので、arguments.callee.lengthをf.lengthとしても同じ。
当然ながらf.lengthでは関数の外からでも可能。


ただし

JavaScript 1.4: Function のプロパティとしての arguments、arguments.callee、および arguments.length を非推奨とする。関数のローカル変数としての arguments、およびこの変数のプロパティとしての arguments.callee と arguments.length はそのまま維持。」

ECMA-262

https://developer.mozilla.org/ja/Core_JavaScript_1.5_Reference/Functions/arguments