ES6+ Features Default Parameters in JavaScript
JavaScript ES6 default parameters or JavaScript ES6 default parameters function example
JavaScript has continuously evolved, and with the arrival of ECMAScript 6 (ES6), several powerful features were introduced to simplify code writing. One such feature is default parameters — a cleaner, more intuitive way to handle function arguments.
In this article, we'll explore:
What are default parameters?
Syntax and examples
Use cases
Comparisons with old JavaScript patterns
Common mistakes
Interview question examples
Default parameters allow you to set default values for function arguments if no value or undefined
is passed.
function greet(name = "Guest") {
console.log("Hello, " + name);
}
greet(); // Output: Hello, Guest
greet("Shubham"); // Output: Hello, Shubham
Without ES6, developers used conditional logic to achieve this:
function greet(name) {
name = name || "Guest";
console.log("Hello, " + name);
}
This approach worked, but failed for falsy values like 0
or ""
.
Cleaner Syntax: Reduces boilerplate code.
Improves Readability: Shows the expected defaults at a glance.
Avoids Errors: Prevents undefined or null-related bugs.
You can define multiple defaults:
function createUser(name = "Anonymous", age = 18) {
return { name, age };
}
console.log(createUser()); // { name: 'Anonymous', age: 18 }
You can even use expressions:
function generateId(id = Date.now()) {
return `ID_${id}`;
}
Or call another function:
function getDefaultName() {
return "DefaultUser";
}
function greet(name = getDefaultName()) {
console.log("Hello, " + name);
}
function userInfo(name = "Guest", age) {
console.log(name, age);
}
userInfo(undefined, 25); // Guest 25
If age
is not optional, default parameters should come after required ones.
arguments
function sum(a = 0, b = 0) {
console.log(arguments.length); // Might be misleading
}
arguments
doesn’t reflect the values of default parameters, which can be confusing.
Question:
What is the difference between using default parameters and setting defaults manually inside the function?
Answer:
Default parameters set values during the function declaration phase and do not override falsy values like 0
or ""
, whereas manual checks (e.g., x = x || 10
) treat falsy values as absence.
Default parameters are a small but powerful addition to JavaScript's ES6 feature set. They help you write more robust, readable, and efficient functions. Whether you're a beginner or brushing up for interviews, mastering this feature is a must.