Javascript(js)中如何为函数设置默认参数值,下面提供几种方法供参考。
注意:以下的第一种方法和第二种方法都是不严谨的,当传入的参数是0或false并且有意义的时候,会被默认值给替换了,所以正确的判断方法应该是:
-
- function example(a, b) {
- if (typeof a == 'undefined') {
- a = 1;//设置参数a的默认值为1
- }
- if (typeof b == 'undefined') {
- b = 2;//设置参数b的默认值为2
- }
- return a + b;
- }
复制代码
第一种方法:
-
- 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:'13611876347',
- QQ:'10086',
- 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:'10089'
- });
- //输出:姓名:王昭君,性别:女,年龄:30,电话:10089,QQ:10086,生日:1949.10.01。
复制代码
|