淺談Javascript中預設參數值的設定,淺談javascript
第一種:
1: function test(a,b){
2: var a = arguments[0] ? arguments[0] : 1;//設定參數a的預設值為1
3: var b = arguments[1] ? arguments[1] : 9;//設定參數b的預設值為9
4: return a+b;
其等價為
1: function test(){
2: var a = arguments[0] ? arguments[0] : 1;//設定參數a的預設值為1
3: var b = arguments[1] ? arguments[1] : 9;//設定參數b的預設值為9
4: return a+b;
5: }
調用樣本
1: alert(test()); //輸出10
2: alert(test(5)); //輸出14
3: alert(test(5,6)); //輸出11
4: alert(test(null,6)); //輸出7
5: alert(test(6,null)); //輸出15
第二種:
1: function test(blog,address){
2: blog=blog||'淡忘~淺思';
3: address=address||'www.ido321.com';
4: alert('部落格名是'+blog+'的地址是'+address);
5: }
其等價為
1: function test(blog,address){
2: if(!blog){blog='淡忘~淺思';}
3: if(!address){address='www.ido321.com';}
4: alert('部落格名是'+blog+'的地址是'+address);
5: }
調用樣本
1: test(); //部落格名是淡忘~淺思的地址是www.ido321.com
2: test('csdn','blog.csdn.net'); //部落格名是csdn的地址是blog.csdn.net
3: test('','blog.csdn.net/u011043843'); //部落格名是淡忘~淺思的地址是blog.csdn.net/u011043843
第三種:
1: function test(setting){
2: var defaultSetting={
3: name:'程式愛好者',
4: age:'1',
5: phone:'15602277510',
6: QQ:'259280570',
7: message:'歡迎你的加入'
8: };
9: $.extend(defaultSetting,setting);
10: var msg='姓名:'+defaultSetting.name
11: +',年齡:'+defaultSetting.age
12: +',電話:'+defaultSetting.phone
13: +',QQ群:'+defaultSetting.QQ
14: +',說明:'+defaultSetting.message
15: +'。';
16: alert(msg);
17: }
調用樣本
1: test(); //輸出:姓名:程式愛好者,年齡:1,電話:15602277510,QQ群:259280570,說明:歡迎你的加入。
2: test({
3: name:'dwqs',
4: age:'20',
5: QQ:'461147874',
6: message:'部落格:www.ido321.com'
7: });
8: //輸出:姓名:dwqs,年齡:20,電話:15602277510,QQ群:461147874,說明:部落格:www.ido321.com。
ps:函數參數比較多時,可以用此方法。這是JQuery的一種擴充,所以需要引入JQuery。
來源:http://www.ido321.com/555.html
javascript中當函數有多個參數時,怎“只輸入“特定的參數?
按照函數的順序,pay之前的可以指定為null(內部有校正的情況請輸入不會出錯的預設值),pay之後的參數可以省略。
例如:
var Test = function(arg1,arg2,pay,arg3,arg4){...}
可以調用為:Test(null,null,'Pay');
在C++中,對於下列設定參數預設值的描述中,哪個是正確的?
B 設定參數預設值只能在定義函數時設定