`
snoopy7713
  • 浏览: 1127135 次
  • 性别: Icon_minigender_2
  • 来自: 火星郊区
博客专栏
Group-logo
OSGi
浏览量:0
社区版块
存档分类
最新评论

如何为javascript方法参数设置默认值

阅读更多

你是否遇到过这样的情况,写了个function,无参数。

 

Js代码 复制代码 收藏代码
  1. function showUserInfo(){
  2. alert("你好!我是小明。");
  3. }
function showUserInfo(){
	alert("你好!我是小明。");
}

调用:

 

Js代码 复制代码 收藏代码
  1. showUserInfo();
showUserInfo();

后来,发现其他地方也需要这个function,但是有变量值已经在function里面写死了,怎么办?加个参数吧。

 

Js代码 复制代码 收藏代码
  1. function showUserInfo(name){
  2. name=name||"小明";
  3. alert("你好!我是"+name+"。");
  4. }
function showUserInfo(name){
	name=name||"小明";
	alert("你好!我是"+name+"。");
}

说明一下:name=name||"小明" 这句代码的意思是如果name为null就等于默认值“小明”。也可以这样写:

Js代码 复制代码 收藏代码
  1. function showUserInfo(name){
  2. // name=name||"小明";
  3. if(!name){
  4. name="小明";
  5. }
  6. alert("你好!我是"+name+"。");
  7. }
function showUserInfo(name){
//	name=name||"小明";
	if(!name){
		name="小明";
	}
	alert("你好!我是"+name+"。");
}

 

调用:

 

Js代码 复制代码 收藏代码
  1. showUserInfo('小李');
showUserInfo('小李');

 

后来,需求又变了,需要加上年龄。好吧再改:

 

Js代码 复制代码 收藏代码
  1. function showUserInfo(name,age){
  2. name=name||"小明";
  3. age=age||22;
  4. alert("你好!我是"+name+",今年"+age+"岁。");
  5. }
function showUserInfo(name,age){
	name=name||"小明";
	age=age||22;
	alert("你好!我是"+name+",今年"+age+"岁。");
}

调用:

 

Js代码 复制代码 收藏代码
  1. showUserInfo('小李');//结果:你好!我是小李,今年22岁。
  2. showUserInfo('小李',19);//结果:你好!我是小李,今年19岁。
  3. showUserInfo(null,19);//结果:你好!我是小明,今年19岁。
showUserInfo('小李');//结果:你好!我是小李,今年22岁。
showUserInfo('小李',19);//结果:你好!我是小李,今年19岁。
showUserInfo(null,19);//结果:你好!我是小明,今年19岁。

 

好了,如果我们需要再添加生日、电话、性别、QQ等等参数,又该怎么办呢?一个一个的设置默认值吗?实际上,我看到很多人确实是这样做的。下面我们来看一个更简单的方式。那就是使用Jquery的扩展。先看代码:

 

Js代码 复制代码 收藏代码
  1. function showUserInfo(setting){
  2. var defaultSetting={
  3. name:"小明",
  4. age:"22",
  5. sex:"男",
  6. phone:"13888888888",
  7. QQ:"12345678",
  8. birthday:"1980.12.29"
  9. };
  10. $.extend(defaultSetting,settings);
  11. var message='姓名:'+defaultSetting.name
  12. +',性别:'+defaultSetting.sex
  13. +',年龄:'+defaultSetting.age
  14. +',电话:'+defaultSetting.phone
  15. +',QQ:'+defaultSetting.QQ
  16. +',生日:'+defaultSetting.birthday
  17. +'。';
  18. alert(message);
  19. }
function showUserInfo(setting){
	var defaultSetting={
		name:"小明",
		age:"22",
		sex:"男",
		phone:"13888888888",
		QQ:"12345678",
		birthday:"1980.12.29"
	};
	
	$.extend(defaultSetting,settings);
	
	var message='姓名:'+defaultSetting.name
			+',性别:'+defaultSetting.sex
			+',年龄:'+defaultSetting.age
			+',电话:'+defaultSetting.phone
			+',QQ:'+defaultSetting.QQ
			+',生日:'+defaultSetting.birthday
			+'。';
	alert(message);
}

说明:$.extend(defaultSetting,settings)的作用就是将传入的setting配置与defaultSetting合并,并用setting中的配置覆盖defaultSetting的配置。

 

调用:

 

Js代码 复制代码 收藏代码
  1. showUserInfo({
  2. name:"小李"
  3. });
  4. //结果:姓名:小李,性别:男,年龄:22,电话:13888888888,QQ:12345678,生日:1980.12.29。
  5. showUserInfo({
  6. name:"小红",
  7. sex:"女",
  8. phone:"13777777777"
  9. });
  10. //结果:姓名:小红,性别:女,年龄:22,电话:13777777777,QQ:12345678,生日:1980.12.29。
showUserInfo({
	name:"小李"
});
//结果:姓名:小李,性别:男,年龄:22,电话:13888888888,QQ:12345678,生日:1980.12.29。
showUserInfo({
	name:"小红",
	sex:"女",
	phone:"13777777777"
});
//结果:姓名:小红,性别:女,年龄:22,电话:13777777777,QQ:12345678,生日:1980.12.29。

 

很简单吧!这样,就算有100个参数,都不怕了。

 

那么什么时候使用多个参数,什么时候使用这样的参数对象呢?我的经验是,根据实际需要,如果使用一、两个参数就可以搞定的就不使用参数对象。超过3个,我就会使用这种参数对象。

分享到:
评论

相关推荐

    举例说明如何为JavaScript的方法参数设置默认值

    主要介绍了举例说明如何为JavaScript的方法参数设置默认值,参数默认值的设置是JS入门学习中的基础知识,需要的朋友可以参考下

    ES6中参数的默认值语法介绍

    前言 在ES6如果函数参数没有值或未定义的,默认函数参数...在过去,设置默认值的一般策略是在函数体中测试参数值,如果它们是未定义的就分配一个值。如果在下面的例子中,在调用过程中b没有提供值,它的值将是undefined

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

    在javascript中如何为函数设置默认参数值,下面提供几种方法供大家参考。 第一种方法: function example(a,b){ var a = arguments[0] ? arguments[0] : 1;//设置参数a的默认值为1 var b = arguments[1] ? ...

    了解JavaScript函数中的默认参数

    如果不初始化具有某些值的参数,则该参数的默认值为undefined。 请看下列代码: function foo(num1){ console.log(num1); } foo(); 在调用函数foo时,你没有传递任何参数,因此变量num1的默认值设置为undefined。...

    javascript中直接写php代码的方法

    那么js文件中也可以直接写php代码,只不过包含js文件是扩展名要改成php,如: 代码如下:[removed][removed]二、javascript函数参数的默认值c语言中可以通过这样来设置默认参数: 代码如下:void foo(int a, int b = 1...

    Javascript中设置默认参数值示例

    //设置参数a的默认值为1 var b = arguments[1] ? arguments[1] : 9;//设置参数b的默认值为9 return a+b; 其等价为 function test(){ var a = arguments[0] ? arguments[0] : 1;//设置参数a的默认值为1 var b = ...

    Javascript中arguments对象详解

    JavaScript不能像PHP一样在函数参数中直接设置默认值,但是JavaScript有一个arguments可以使用,这就可以为函数参数设置默认值了

    程序天下:JavaScript实例自学手册

    13.5 输入框的默认值为今天 13.6 时间相加 13.7 5秒后消失的广告 13.8 12小时制和24小时制的转换 13.9 标题栏显示时间 13.10 超过时间页面自动跳转 13.11 分时段问候用户 13.12 获取服务器时间 13.13 倒计时显示 ...

    纯Javascript的统计图形报表,带实例和详细的说明文档 Highcharts

    zoomType 拖动鼠标进行缩放,沿x轴或y轴进行缩放,可以设置为:'x','y','xy' '' events 事件回调,支持addSeries方法,click方法,load方法,selection方法等的回调函数。 Color 颜色选项 Color颜色选项用于...

    《程序天下:JavaScript实例自学手册》光盘源码

    13.5 输入框的默认值为今天 13.6 时间相加 13.7 5秒后消失的广告 13.8 12小时制和24小时制的转换 13.9 标题栏显示时间 13.10 超过时间页面自动跳转 13.11 分时段问候用户 13.12 获取服务器时间 13.13 倒计时显示 ...

    详解JavaScript自定义函数

    一、定义方法:在Javascript中必须用function关键字 function funcName(arg1,arg2...) { statements; return 变量值; //返回值可以根据函数的需要 } 函数名是函数自身的一个...//设置参数a的默认值为 var b = argumen

    前端开发不得不知的10个最佳ES6特性

    为了保证可读性,本文采用意译而非直译,并且对源代码进行了大量修改。另外,本文版权归原作者所有,翻译仅用于学习。 ES6,正式名称是ECMAScript2015,但是ES6这个名称更加...为函数的参数设置默认值: function fo

    vtolmach-advanced-settings:为流星设置提供高级(日志记录、默认值、生成文件)功能

    Meteor 设置不提供任何设置检查或默认值。 因此,如果您使用错误的值或忘记使用流星实例调用--settings settings.json参数,则会收到错误消息。 高级设置为解决所有问题提供了优雅的方式。 快速开始 跑步 meteor ...

    JavaScript 图片切割效果

    1,设置控制层的overflow为hidden,好处是只需要设置一次,但这个样式会影响其他效果,当然在不影响效果的情况下这个是最好的方法; 2,在缩放的时候,通过修改控制层的某些样式,使里面的div再渲染,这样的样式包括...

    史上最强JavaScript日历控件正式版(无偿的永久的提供给大家免费使用,含全部源代码)

    纠错处理可设置为3种模式 1.提示 2.自动纠错(默认) 3.标记 当日期框中的值不符合格式时,系统会尝试自动修复,如果修复失败会根据您设置的纠错处理模式进行处理,错误判断功能非常智能它可以保证用户输入的值是一个合法...

    JavaScript Table行定位效果

    接着想到的是给table插入一个新tr,克隆原来的tr,并设置这个tr为fixed(ie6为absolute),例如: Code <!DOCTYPE ...

    js-cookie:用于浏览器cookie的微型JavaScript脚本

    JavaScript Cookie 用于管理浏览器Cookie的微型JavaScript脚本。 安装 直接下载 ... 基本用法 Cookie .... 创建一个Cookie,有效期为1天,并且在整个网站上均有效: Cookie . set ( 'cookiename' ,

    fckeditor2.6.3 完整版

    width:宽度,默认值为100% height:高度,默认值是200 ToolbarSet:工具集名称,参考FCKCONFIG.JS,默认值是Default value:初始化编辑器的HTML代码,默认值为空 BasePath:编辑器的基路径,默认为/Fckeditor/文件夹,注意,尽量...

    javascript Promise简单学习使用方法小结

    解决回调函数嵌套太深,并行逻辑必须串行执行,一个Promise代表一个异步操作的最终结果,跟Promise交互的主要方式是通过他的then()方法来注册回调函数,去接收...定义成员方法setStatus(),设置状态,传递参数:st

Global site tag (gtag.js) - Google Analytics