【JavaScript :语法】Js 中function的默认参数值设置方法

参考博客:

浅谈js中function的参数默认值

js中对函数设置默认参数值的3种方法

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。

以上这三种方法大家学会了吗,这三种方法各有优缺点,大家具体情况具体分析,选择最适合的方法进行学习。

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值