JavaScript 函数的默认参数

ES5 的年代

JS 函数的默认参数都是 undefined,在 ES5 里不支持直接在形参里面写默认值。所以,如果需要设置默认值,只能在函数内部检测该参数是否为 undefined,若非才进行赋值。

  1. 这是一种比较正规严谨的做法
function add ( a, b ) {
	var b = typeof b !== 'undefined' ? b : 0;
	return a + b;
}

也可以使用 arguments 对象,进行判断

function add ( a ) {
	var b = typeof arguments[1] !== 'undefined' ? arguments[1] : 0;
	return a + b;
}
  1. 在 “布尔类型” 的判断中 undefined,0,"", NaN, null 都会被转为 false,所以当采用下面的形式简写的时候一定要注意是否会产生错误
//正确
function add ( a, b ) {
	var b = b ? b : 0; // 等价于 var b = b || 0;
	return a + b;
}
//错误,因为当 b 为 0 时,会被错误的转化为 1,而产生错误 
function multiply ( a, b ) {
	var b = b || 1; // 等价于 var b = b ? b: 1;
	return a * b;
}

ES6 的年代

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

function add ( a, b = 0 ) {
	return a + b;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值