函数的可选参数

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);
}

原文地址:https://www.cnblogs.com/yingzi/p/2579507.html