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}\`)
}