JS: Function parameters default values
(new in ECMAScript 2015)
Parameter default value
Function's parameters can specify default values, like this:
function f (param=value) {body}
it works with Arrow Function and function (keyword).
// function with default parameter values const ff = (x = 4, y = 2) => [x, y]; console.log(ff()); // [ 4, 2 ]
// function with default parameter values function f(x = 4, y = 2) { return [x, y]; } console.log(f()); // [ 4, 2 ]
Default value expression evaluated at call time
Default value expression are evaluated at call time. For example,
function f(x=m) { return x; }
the m is evaluated when f is called.
// function, param default value expression is eval'd at call time let m = 2; function f(x=m) { return x; } m = 3; console.log( f() === 3 ); // true
Later value expression have access to previous value expression
Later value expression have access to previous value expression.
// function with default value for parameter // later expression can refer previous function f(x=4, y=x) { return [x , y]; } console.log( f() ); // [4, 4]
Passing undefined as argument
Passing undefined as arguments is equivalent to not passing.
// passing undefined is equivalent as not passing function f(x=4) { return x; } console.log( f(undefined) === 4 ); // true
Passing null as argument
Passing null has no special effect. The argument just got the value of null.
function f (x=3) { return x; } console.log( f(null) === null ); // true