func的默认参数?
func(string1,url,flag,icon),然后在另一个asp中调用它func(a,b),那flag和icon的值是什么,怎么定义默认值?谢谢!--默认值应该是 undefined
在函数内预设数可以用 arguments[i]
【注意】这是JavaScript函数中保存传入该函数中的参数的列表。所以,有些开源项目或者自己写的代码时候,
可以不用使用函数声明中的形参名字,而用 var a = arguments[0] 来获取到第一个参数。
但是这个argument无法获得this。
i就是你参数的位置 第一个为0
所以要设定 flag 的默认值 则可以这么写
function func(string1,url,flag,icon){
if(!arguments[2]) flag = "123";
if(!arguments[3]) icon = "456";
}
你试试 应该是这样
今天遇到一个问题,需要调用一个JS函数,想在函数中给它一个默认参数,以为跟其他语言一样。
<script>
function test(id=0){
alert(id);
}
</script>
<input type="button" value="test" οnclick="test()">
运行结果报错,JS中不能这样传默认参数,上网查了一下,可以借助于arguments 实参数组,参考下例:
<script>
function test(a){
var b=arguments[1]?arguments[1]:50
return a+':'+b
}
alert(test(5))
alert(test(5,9))
</script>
跟其他语言的一点小区别。。
--var b=arguments[1]?arguments[1]:50 还可以写做: var b= arguments[1] || 50;
我特别喜欢它这个特性。
--var b= arguments[1] || 50; 这个方法相当精简啊。
==================================================================
在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('王五',30);//输出:你好!我是王五,今年30岁。
example(null,30);//输出:你好!我是貂蝉,今年30岁。
第三种方法,这种方法适合用于参数较多的情况,使用了Jquery的扩展:
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);
}
调用示例:
example({
name:'小红',
sex:'女',
phone:'100866'
});
//输出:姓名:小红,性别:女,年龄:30,电话:100866,QQ:100866。