浅谈Javascript中默认参数值的设置

第一种:

   1: function test(a,b){
   2:    var a = arguments[0] ? arguments[0] : 1;//设置参数a的默认值为1
   3:    var b = arguments[1] ? arguments[1] : 9;//设置参数b的默认值为9
   4:    return a+b;

其等价为

   1: function test(){
   2: var a = arguments[0] ? arguments[0] : 1;//设置参数a的默认值为1
   3: var b = arguments[1] ? arguments[1] : 9;//设置参数b的默认值为9
   4: return a+b;
   5: }

调用示例

   1: alert(test());  //输出10
   2: alert(test(5));   //输出14
   3: alert(test(5,6));  //输出11
   4: alert(test(null,6));  //输出7
   5: alert(test(6,null));   //输出15

第二种:

   1: function test(blog,address){
   2:     blog=blog||‘淡忘~浅思‘;
   3:     address=address||‘www.ido321.com‘;
   4:     alert(‘博客名是‘+blog+‘的地址是‘+address);
   5: }

其等价为

   1: function test(blog,address){
   2:     if(!blog){blog=‘淡忘~浅思‘;}
   3:     if(!address){address=‘www.ido321.com‘;}
   4:     alert(‘博客名是‘+blog+‘的地址是‘+address);
   5: }

调用示例

   1: test();   //博客名是淡忘~浅思的地址是www.ido321.com
   2: test(‘csdn‘,‘blog.csdn.net‘);  //博客名是csdn的地址是blog.csdn.net
   3: test(‘‘,‘blog.csdn.net/u011043843‘);  //博客名是淡忘~浅思的地址是blog.csdn.net/u011043843

第三种:

   1: function test(setting){
   2:     var defaultSetting={
   3:         name:‘程序爱好者‘,
   4:         age:‘1‘,
   5:         phone:‘15602277510‘,
   6:         QQ:‘259280570‘,
   7:         message:‘欢迎你的加入‘
   8:     };
   9:     $.extend(defaultSetting,setting);
  10:     var msg=‘姓名:‘+defaultSetting.name
  11:     +‘,年龄:‘+defaultSetting.age
  12:     +‘,电话:‘+defaultSetting.phone
  13:     +‘,QQ群:‘+defaultSetting.QQ
  14:     +‘,说明:‘+defaultSetting.message
  15:     +‘。‘;
  16:     alert(msg);
  17: }

调用示例

   1: test();  //输出:姓名:程序爱好者,年龄:1,电话:15602277510,QQ群:259280570,说明:欢迎你的加入。
   2: test({
   3:   name:‘dwqs‘,
   4:   age:‘20‘,
   5:   QQ:‘461147874‘,
   6:   message:‘博客:www.ido321.com‘
   7: });
   8: //输出:姓名:dwqs,年龄:20,电话:15602277510,QQ群:461147874,说明:博客:www.ido321.com。

ps:函数参数比较多时,可以用此方法。这是JQuery的一种扩展,所以需要引入JQuery。

来源:http://www.ido321.com/555.html

时间: 2024-11-14 12:40:15

浅谈Javascript中默认参数值的设置的相关文章

浅谈JavaScript中的原型模式

在JavaScript中创建对象由很多种方式,如工厂模式.构造函数模式.原型模式等: <pre name="code" class="html">//工厂模式 function createPerson(name,age,job) { var o = new Object; o.name = name; o.age = age; o.job = job; o.sayName = function() { alert(this.name); } retur

浅谈JavaScript中继承的实现

  谈到js中的面向对象编程,都有一个共同点,选择原型属性还是构造函数,两者各有利弊,而就片面的从js的对象创建以及继承的实现两个方面来说,官方所推荐的是两个相结合,各尽其责,各取其长,在前面的例子中,我已就在JavaScript中对象创建的方法做了一些总结,下面就其继承来道说一二:   1:原型链继承: 每一个构造函数都有一个原型对象,原型对象都包含一个指向构造函数的指针,而实例都包含一个指向原型对象内部的指针(默认的原型,所有默认类型都继承了Object,而这个继承也是用过原型链实现) fu

浅谈Javascript中的原型、原型链、继承

构造函数,原型,实例三者的关系 构造函数: 构造函数是创建对象的一种常用方式, 其他创建对象的方式还包括工厂模式, 原型模式, 对象字面量等.我们来看一个简单的构造函数: function Product (name, role){ //构造函数的命名约定第一个字母使用大写的形式! this.name = name; this.role = role; } ( 1 ) 每一个构造函数都有一个prototype属性,我们可以在Chorme控制台中打印出Product.prototype属性. (

浅谈javascript中的call、apply、bind

apply.call 在 javascript 中,call 和 apply 都是为了改变某个函数运行时的上下文(context)而存在的,换句话说,就是为了改变函数体内部 this 的指向. JavaScript 的一大特点是,函数存在「定义时上下文」和「运行时上下文」以及「上下文是可以改变的」这样的概念. 先来一个栗子: function fruits() {} fruits.prototype = { color: "red", say: function() { console

浅谈JavaScript中的函数问题

前面的话:JavaScript可运行在所有主要平台的主流浏览器上,也可运行在每一个主流操作系统的服务器端上.所以呢,要想成为一名优秀的全栈工程师,必须懂得JavaScript语言.这是我整理的JS的部分函数问题,供大家参考借阅,有不妥的地方也请多多指教. 1.函数的三要素    1.1 函数的功能   1.2 函数的参数 a. 形参——定义函数的时候,没有实际的值,给实参占位 b. 实参——调用函数的时候,有实际的值: c. 当调用函数的时候会把实参复制一份传递给函数 d. 函数调用的时候,实参

浅谈JavaScript中的string拥有方法的原因

我们都知道,JavaScript数据类型分两大类,基本类型(或者称原始类型)和引用类型. 基本类型的值是保存在栈内存中的简单数据段,它们是按值访问的.JS中有五种基本类型:Undefined.Null.Boolean.Number和String. 引用类型的值是保存在堆内存中的对象,它的值是按引用访问的.引用类型主要有Object.Array.Function.RegExp.Date. 对象是拥有属性和方法的,所以我们看到下面这段代码一点也不奇怪. var favs=['鸡蛋','莲蓬']; f

通过一道笔试题浅谈javascript中的promise对象

因为前几天做了一个promise对象捕获错误的面试题目,所以这几天又重温了一下promise对象.现在借这道题来分享下一些很基础的知识点. 下面是一个面试题目,三个promise对象捕获错误的例子,返回结果有什么不同. //使用throw添加错误事件 var p = new Promise(function(resolve, reject) { resolve("ok"); throw new Error('error0'); //setTimeout(function() { thr

浅谈JavaScript中数组操作常用方法

JavaScript中数组操作常用方法 1.检测数组 1)检测对象是否为数组,使用instanceof 操作符 if(value instanceof Array) { //对数组执行某些操作 } 2)获取对象的类型,比较是否为object类型(此方法只能检测是否为Object,不推荐) if(typeof(value)=="Object") { //对数组执行某些操作 } 3)检测对象是否为数组,使用Array.isArray()方法(只支持ie9+,firefox 4+,safar

浅谈javascript中的闭包

引入定义:闭包只有权访问另一个函数中的作用域中的函数. 简单点说,就是当某函数a执行完毕后,闭包不会使得GC(JavaScript的回收机制)去回收a所占用的资源,因为a的内部函数b的执行需要依赖a中的变量. 代码示例: window.onload = function(){ function createComparisonFunction(propertyName){ return function(object1, object2){ var value1 = object1[proper