func的默認(rèn)參數(shù)?
func(string1,url,flag,icon),然后在另一個asp中調(diào)用它func(a,b),那flag和icon的值是什么,怎么定義默認(rèn)值?謝謝!--默認(rèn)值應(yīng)該是 undefined
在函數(shù)內(nèi)預(yù)設(shè)數(shù)可以用 arguments[i]
【注意】這是JavaScript函數(shù)中保存?zhèn)魅朐摵瘮?shù)中的參數(shù)的列表。所以,有些開源項目或者自己寫的代碼時候,
可以不用使用函數(shù)聲明中的形參名字,而用 var a = arguments[0] 來獲取到第一個參數(shù)。
但是這個argument無法獲得this。
i就是你參數(shù)的位置 第一個為0
所以要設(shè)定 flag 的默認(rèn)值 則可以這么寫
function func(string1,url,flag,icon){
if(!arguments[2]) flag = "123";
if(!arguments[3]) icon = "456";
}
你試試 應(yīng)該是這樣
今天遇到一個問題,需要調(diào)用一個JS函數(shù),想在函數(shù)中給它一個默認(rèn)參數(shù),以為跟其他語言一樣。
<script>
function test(id=0){
alert(id);
}
</script>
<input type="button" value="test" οnclick="test()">
運(yùn)行結(jié)果報錯,JS中不能這樣傳默認(rèn)參數(shù),上網(wǎng)查了一下,可以借助于arguments 實(shí)參數(shù)組,參考下例:
<script>
function test(a){
var b=arguments[1]?arguments[1]:50
return a+':'+b
}
alert(test(5))
alert(test(5,9))
</script>
跟其他語言的一點(diǎn)小區(qū)別。。
--var b=arguments[1]?arguments[1]:50 還可以寫做: var b= arguments[1] || 50;
我特別喜歡它這個特性。
--var b= arguments[1] || 50; 這個方法相當(dāng)精簡啊。
==================================================================
在javascript中如何為函數(shù)設(shè)置默認(rèn)參數(shù)值,下面提供幾種方法供大家參考。
第一種方法:
function example(a,b){
var a = arguments[0] ? arguments[0] : 1;//設(shè)置參數(shù)a的默認(rèn)值為1
var b = arguments[1] ? arguments[1] : 2;//設(shè)置參數(shù)b的默認(rèn)值為2
return a+b;
}
注意以上函數(shù)也可寫作如下:
function example(){
var a = arguments[0] ? arguments[0] : 1;//設(shè)置第一個參數(shù)的默認(rèn)值為1
var b = arguments[1] ? arguments[1] : 2;//設(shè)置第二個參數(shù)的默認(rèn)值為2
return a+b;
}
調(diào)用示例:
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+'歲。');
}
該函數(shù)也可以寫作如下:
function example(name,age){
if(!name){name='貂蟬';}
if(!age){age=21;}
alert('你好!我是'+name+',今年'+age+'歲。');
}
調(diào)用示例:
example('王五');//輸出:你好!我是王五,今年21歲。
example('王五',30);//輸出:你好!我是王五,今年30歲。
example(null,30);//輸出:你好!我是貂蟬,今年30歲。
第三種方法,這種方法適合用于參數(shù)較多的情況,使用了Jquery的擴(kuò)展:
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);
}
調(diào)用示例:
example({
name:'小紅',
sex:'女',
phone:'100866'
});
//輸出:姓名:小紅,性別:女,年齡:30,電話:100866,QQ:100866。