zl程序教程

您现在的位置是:首页 >  前端

当前栏目

JavaScript 函数的默认参数

JavaScript 函数 参数 默认
2023-09-11 14:22:55 时间

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;
}