在javascript中如何为函数设置默认参数值,下面提供几种方法供大家参考。

第一种方法:


function example(a,b){  
  var a = arguments[0] ? arguments[0] : 1;//设置参数a的默认值为1  
  var b = arguments[1] ? arguments[1] : 2;//设置参数b的默认值为2  
  return a+b;  
}

注意以上函数也可写作如下:


function example(){  
  var a = arguments[0] ? arguments[0] : 1;//设置第一个参数的默认值为1  
  var b = arguments[1] ? arguments[1] : 2;//设置第二个参数的默认值为2  
  return a+b;  
}

调用示例:


alert( example() ); //输出3  
alert( example(10) ); //输出12  
alert( example(10,20) ); //输出30  
alert( example(null,20) ); //输出20

第二种方法:


function example(name,age){  
  name=name||'貂蝉';  
  age=age||21;  
  alert('你好!我是'+name+',今年'+age+'岁。');  
}

该函数也可以写作如下:


function example(name,age){  
  if(!name){name='貂蝉';}  
  if(!age){age=21;}  
  alert('你好!我是'+name+',今年'+age+'岁。');  
}

调用示例:


example('王五');//输出:你好!我是王五,今年21岁。  

example('王五',30);//输出:你好!我是王五,今年30岁。  

example(null,30);//输出:你好!我是貂蝉,今年30岁。

第三种方法,这种方法适合用于参数较多的情况,使用了Jquery的扩展:

function example(setting){  
  var defaultSetting={  
    name:'小红',  
    age:'30',  
    sex:'女',  
    phone:'100866',  
    QQ:'100866',  
    birthday:'1949.10.01'

  };  
  $.extend(defaultSetting,settings);  
  var message='姓名:'+defaultSetting.name  
  +',性别:'+defaultSetting.sex  
  +',年龄:'+defaultSetting.age  
  +',电话:'+defaultSetting.phone  
  +',QQ:'+defaultSetting.QQ  
  +',生日:'+defaultSetting.birthday  
  +'。';  
  alert(message);  
}

调用示例:


example({  
  name:'小红',  
  sex:'女',  
  phone:'100866'  
});  
//输出:姓名:小红,性别:女,年龄:30,电话:100866,QQ:100866。

以上这三种方法大家学会了吗,这三种方法各有优缺点,大家具体情况具体分析,选择最适合的方法进行学习。