Аргументы функции

Узнать, сколько функция принимает аргументов, можно в её свойстве length.

var l = (function (a, b, c) {}).length; // == 3

Узнать, сколько в неё было передано аргументов, можно в свойстве length объекта arguments.

(function (a, b, c) {
  var l = arguments.length; // == 2
})(100, 200);

Хоть объект arguments и похож на массив, но таковым он не является. У него нет методов, которые есть у массивов. Чтобы превратить его в настоящий массив нужно сделать его независимую копию.

var args = Array.prototype.slice.call(arguments);