ES2015 起:
从 ES6/ES2015 开始,我们在语言规范中有默认参数。所以我们可以做一些简单的事情,比如,
function A(a, b = 4, c = 5) {
}
或与ES2015解构相结合,
function B({c} = {c: 2}, [d, e] = [3, 4]) {
}
有关详细说明,
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/default_parameters
默认函数参数允许在未传递值或未定义值时使用默认值初始化形式参数。
ES2015之前:
如果要处理不是数字、字符串、布尔值的值,或者您可以简单地使用NaN
null
(因此,对于您计划从不发送的对象,数组和函数,您可以使用)null
param || DEFAULT_VALUE
例如
function X(a) {
a = a || function() {};
}
虽然这看起来很简单并且有点有效,但这是限制性的,并且可能是一种反模式,因为对所有falsy值(,,,,)也进行了操作 - 这使得这种方法无法为作为参数传递的falsy值分配参数。||
""
null
NaN
false
0
因此,为了仅显式处理值,首选方法是:undefined
function C(a, b) {
a = typeof a === 'undefined' ? DEFAULT_VALUE_A : a;
b = typeof b === 'undefined' ? DEFAULT_VALUE_B : b;
}