函数

182 阅读1分钟

一、参数(Arguments)

所有函数都能从内部访问到它们的实参。这些实参会在函数内部变为一个个局部变量,其值是函数在调用时传进来的那个值。另外,如果函数在调用时实际使用的参数少于它在定义时确定的形参,那么那些多余的未用到的参数的值就会是 undefined。

var myFn = function(frist, second) {
    console.log('frist : ' + frist);
    console.log('second : ' + second);
};

myFn(1, 2);
// first : 1
// second : 2

myFn('a', 'b', 'c');
// first : a
// second : b

myFn('test');
// first : test
// second : undefined

因为 JavaScript 允许向函数传递任意个数的参数,这也同时为我们提供了一个方式来判断函数在调用时使用的实参和函数定义时的形参的数量是否相同。这个检测的方式通过 arguments 这个对象来实现,这个对象类似于数组,储存着该函数的实参:

var myFn = function(frist, second) {
    console.log('length : ' + arguments.length);
    console.log('frist : ' + arguments[0]);
};

myFn(1, 2);
// length : 2
// frist : 1

myFn('a', 'b', 'c');
// length : 3
// frist : a

myFn('test');
// length : 2
// frist : test

arguments 对象的 length属性可以显示我们传递函数的实参个数。

对实参的调用可以对 arguments 对象使用类似数组的下标法:

arguments[0] 表示传递的第一个实参

arguments[1] 表示第二个实参。