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

Web  2019年5月2日 pm12:31发布6年前 (2019)更新 91es.com站长
67 0 0


在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的扩展:

unction 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。

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

 

本文摘抄于《js中对函数设置默认参数值的3种方法

版权声明 1、 本站名称: 91易搜
2、 本站网址: 91es.com3xcn.com
3、 本站内容: 部分来源于网络,仅供学习和参考,若侵权请留言
3、 本站申明: 个人流水账日记,内容并不保证有效

暂无评论

暂无评论...

随机推荐

叔本华:只有经过深思的东西才能成为真知

哪怕是藏书最丰的图书馆,如果书籍放置混乱的话,其实际用处也不及一个收藏不多、但却整理得有条有理的小图书室。同样,大量的知识如果未经自己思想的细心加工处理,其价值也远远逊色于数量更少、但却经过头脑多方反复斟酌的知识。这是因为只有通过把每一真实的知识相互比较,把我们的所知从各个方面和角度融会贯通以后,我...

Android ContentProvider记录2

前言接上一篇Contentprovider的介绍入门(《Android ContentProvider使用记录》),今天记录一下Contentprovider用于记录值状态。正文个人流水账,瞎写,只方便自己查阅,不共享。 隐藏内容!付费阅读后才能查看!¥18 ¥20多个隐藏块只需支付一次付...

林清玄:什么才是有品质的生活

有好多人喜欢讲生活品质,他们认为花的钱多、花得起钱就是生活品质了。于是,有愈来愈多的人,在吃饭时一掷万金,在买衣时一掷万金,拼命的挥霍金钱,当我们问他为什么要如此,他的答案是理直气壮的——“为了追求生活品质!为了讲究生活品质!”生活?品质?这两样东西到底意味着什么呢?如果说有钱能满足许多的物质...

Android 内存优化等记录

前言记录一下内存相关的内容正文Java虚拟机Java虚拟机是一台“抽象的计算机”,它拥有自己的处理器,堆栈,寄存器以及相应的指令系统。Java虚拟机疲敝了与操作系统相关的平台信息,使得Java程序只需要生成该虚拟机上运行的目标代码,就可以在多个平台上运行。JVM运行时数据区域分为两个部...

[代码片段]获取Sdcard或者U盘的磁盘大小,空闲大小等

前言代码功能:获取Sdcard或者U盘的磁盘大小,空闲大小等。好记性不如烂笔头正文存在单位转换 /** * 磁盘单位转换 * * @param size * @return */ public static String u...

Android中关于焦点的记录

前言焦点管理是Android中比较重要的一个点,这也是Android对播放器的一个约束条件,但手机上的播放器应用都不太准守这个准则,所以就就可以存在混音问题。这里记录一下我自己的理解,当然,由于文笔过于拙,内容不会分享,谢谢。正文代码片段AudioFocusManager.javapu...