Problem Statement
Explain default parameters in JavaScript functions. How do they work with undefined and null?
Explanation
Default parameters allow you to specify default values for function parameters if no argument is provided or if undefined is passed.
Introduced in ES6, they provide cleaner syntax than the old pattern of using logical OR or checking for undefined.
Default parameters are evaluated at call time, so you can use expressions or even call other functions as defaults.
Parameters with defaults must come after required parameters.
If you pass undefined explicitly, the default value is used. But passing null does not trigger the default because null is a valid value.
Default parameters make functions more robust by handling missing arguments gracefully without additional code inside the function body.
Code Solution
SolutionRead Only
// Basic default parameters
function greet(name = 'Guest', greeting = 'Hello') {
return greeting + ' ' + name;
}
console.log(greet()); // 'Hello Guest'
console.log(greet('John')); // 'Hello John'
console.log(greet('John', 'Hi')); // 'Hi John'
// undefined triggers default
console.log(greet(undefined, 'Hey')); // 'Hey Guest'
// null does not trigger default
console.log(greet(null)); // 'Hello null'
// Expression as default
function multiply(a, b = a * 2) {
return a * b;
}
console.log(multiply(5)); // 25 (5 * 10)
console.log(multiply(5, 3)); // 15
// Function call as default
function getDefault() {
return 'Default Value';
}
function demo(value = getDefault()) {
return value;
}
console.log(demo()); // 'Default Value'
console.log(demo('Hi')); // 'Hi'
// Multiple defaults
function createUser(name = 'Anonymous', age = 18, role = 'user') {
return { name, age, role };
}
console.log(createUser()); // {name: 'Anonymous', age: 18, role: 'user'}