Default Parameters
Default parameters allow you to specify fallback values when arguments are not provided.
Syntax
function multiply(a, b = 1) {
return a * b
}
multiply(5, 3) // 15
multiply(5) // 5 (b defaults to 1)
multiply(5, 0) // 0 (0 is used, not the default!)
Arrow Functions
const greet = (name = 'Guest') => \`Hello, \${name}!\`
greet('Alice') // 'Hello, Alice!'
greet() // 'Hello, Guest!'
Important: Falsy Values
Default values only kick in for undefined, not other falsy values:
function test(x = 'default') {
return x
}
test(undefined) // 'default' ← uses default
test(null) // null ← does NOT use default
test('') // '' ← does NOT use default
test(0) // 0 ← does NOT use default
test(false) // false ← does NOT use default
Expressions as Defaults
function getDate() { return new Date() }
function log(msg, date = getDate()) {
console.log(\`[\${date}] \${msg}\`)
}