javascript函数设置默认参数

PHP函数中,可以直接在参数后面加=,设置默认值,如:

function sum($a,$b,$c=0){
    return a + b + c;
}

例:

echo sum(1,2); //输出3

假如你认为javascript也可以这样写,你就大错特错了。


在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('西施',305);//输出:你好!我是西施,今年305岁。  example(null,10);//输出:你好!我是貂蝉,今年10岁。

第三种方法,这种方法适合用于参数较多的情况,Jquery插件中很常见:

function example(setting){ 
  var defaultSetting={ 
    name:'小明', 
    age:'16', 
    sex:'男', 
  }; 
  $.extend(defaultSetting,settings); 
  var message='姓名:'+defaultSetting.name 
  +',年龄:'+defaultSetting.age 
  +',性别:'+defaultSetting.sex 
  +'。'; 
  alert(message); 
}

例:

example({ 
  name:'小红', 
  sex:'女'}); 
//输出:姓名:小红,性别:女,年龄:16。

三种方法都可以,最后一种需要引用jquery库。