Default Parameters in JavaScript

📌 What Are Default Parameters?

In JavaScript, default parameters allow you to initialize function parameters with default values if no value or undefined is explicitly passed. This feature helps write more flexible and robust functions. 💡

🧪 Basic Example

Default Parameter Syntax

function greet(name = "Stranger") {
  console.log("Hello, " + name + "!");
}

greet();           // Hello, Stranger!
greet("Sathish");  // Hello, Sathish!

In the example above, if no argument is passed to greet(), the parameter name takes the default value "Stranger". Otherwise, it uses the provided argument. 🎯

💡 When Are Default Parameters Used?

  • When no argument is passed at all
  • When undefined is explicitly passed

undefined Still Uses Default

greet(undefined);  // Hello, Stranger!
greet(null);       // Hello, null!

Note

⚠️ null is a valid value and does not trigger the default parameter. Only undefined does.

🔄 Default Parameters with Expressions

Using Expressions as Default Values

function getRandom(min = 0, max = min + 10) {
  return Math.floor(Math.random() * (max - min + 1)) + min;
}

console.log(getRandom());       // Between 0 and 10
console.log(getRandom(5));      // Between 5 and 15
console.log(getRandom(5, 8));   // Between 5 and 8

Default values can even depend on earlier parameters in the list — just like max = min + 10 above! 🧠

🧠 Default Parameters with Destructuring

Destructured Default Parameters

function createUser({ name = "Guest", age = 18 } = {}) {
  return `${name} is ${age} years old.`;
}

console.log(createUser());                    // Guest is 18 years old.
console.log(createUser({ name: "Sana" }));    // Sana is 18 years old.
console.log(createUser({ age: 25 }));         // Guest is 25 years old.

Default parameters can also work alongside object destructuring. This is handy for handling optional config objects in functions. 🧩

✅ Summary

  • Default parameters provide fallback values for missing or undefined arguments
  • You can use expressions and reference earlier parameters as defaults
  • Combines well with destructuring to create flexible APIs

📚 References

>>“Default parameters make your functions smart enough to handle the absence of values gracefully.” 🧩