js函数的默认参数(default parameter)

本文介绍了JavaScript中函数默认参数的设置方法,包括ES5和ES6的不同实现方式,并展示了如何使用解构赋值来设定默认参数。

js函数的默认参数(default parameter)

js函数参数的默认值都是undefinedES5里,不支持直接在形参里写默认值。所以,要设置默认值,就要检测参数是否为undefined,按需求赋值。

function multiply(a, b) {
  b = typeof b !== 'undefined' ?  b : 1;

  return a*b;
}

multiply(5); // 5
multiply(5, 0); // 0

上面是MDN的相关例子,是比较严谨的写法。不推荐下面的写法:

function multiply(a, b) {
  b = b ?  b : 1;  // b = b || 1;

  return a*b;
}

multiply(5); // 5
multiply(5, 0); // 5

因为,在布尔类型环境中undefined, 0, "", NaN, null会被转换成 false

进一步,还可以先利用arguments对象,再设置默认值 :

function multiply(a) {
  var b = typeof arguments[1] !== 'undefined' ? arguments[1] : 1;

  return a*b;
}

 multiply(5); // 5
 multiply(5, 0); // 0

ES6里已经支持默认参数了,直接写就好啦:

function multiply(a, b = 1) {
  return a*b;
}

multiply(5); // 5

ES6还支持解构赋值来设置默认参数:

jQuery.ajax = function (url, {
  async = true,
  beforeSend = function () {},
  cache = true,
  complete = function () {},
  crossDomain = false,
  global = true,
   // ... more config
}) {
   // ... do stuff
};

更详细的介绍,请看阮一峰的ECMAScript 6 入门函数的拓展

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值