js的函数可以以任意数目的参数来调用,而不管函数定义中的参数名字有多少个。
当调用一个函数的参数少于声明的参数个数的时候,其他参数就有一个undefined的值。
某些参数为可选的并且在调用函数的时候可以忽略
要做到这一点,必须为忽略掉的参数分配一个合理的默认值。或者指定为null~~~
否则不指定的话 会显示 undefined。。
function testOptionalParameter(a,b,c){
if(!c) c="";
alert(a+b+c);
}
testOptionalParameter("tanya","ansel");
也可以使用||运算符
a= a || []
如果第一个值为true,则返回第一个值,否则返回第二个值
function testOptionalParameter(a,b,c){
if(!c) c="";
alert(c||b||a);
}
testOptionalParameter( "ansel","tanya");
注意,此时,我为c赋过空字符串,但也不会返回c。。
arguments用于返回函数的参数数目。
function testOptionalParameter(a,b,c){
if(!c) c="";
alert(arguments.length)
}
testOptionalParameter( "ansel","tanya","dasjdhjasdh","1");
结果是 4
arguments对象还定义了callee属性,用来引用当前正在执行的函数,允许对未命名的函数,递归的调用自身
function (x){
if(x<=1) return 1;
else
return x*arguments.callee(x-1);
}
等同于
function factorial(x){
if(x<=1) return 1;
else
return x*factorial(x-1);
}