定义一个函数时,一定参数值往往需要一个默值,放便重复调用。

使用判断

用if…else的简写:

1
2
3
4
5
6
7
8
9
10
11
function sum(a,b){
var a = arguments[0] ? arguments[0] : 1;//设置参数a的默认值为1
var b = arguments[1] ? arguments[1] : 2;//设置参数b的默认值为2
return a+b;
}

//调用
alert( sum() ); //输出3
alert( sum(10) ); //输出12
alert( sum(10,20) ); //输出30
alert( sum(null,20) ); //输出20

运算符 “||” (简单好用)

1
2
3
4
5
6
7
8
9
10
function sayhi(name,age){
name=name||'Devin';
age=age||27;
alert('你好!我是'+name+',今年'+age+'岁。');
}

//调用
sayhi('王五');//输出:你好!我是王五,今年27岁。
sayhi('王五',30);//输出:你好!我是王五,今年30岁。
sayhi(null,30);//输出:你好!我是Devin,今年30岁。

还可以写成这样:

1
2
3
4
5
function sayhi(name,age){
if(!name){name='Devin';}
if(!age){age=27;}
alert('你好!我是'+name+',今年'+age+'岁。');
}

使用了Jquery的扩展,适合参数较多的情况

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
function example(settings){
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。

只是我平时工作的常用方法,更多方法还待发掘…