Default Parameters in JavaScript with ES6 / ES2015


While this tutorial has content that we believe is of great benefit to our community, we have not yet tested or edited it to ensure you have an error-free learning experience. It's on our list, and we're working on it! You can help us out by using the "report an issue" button at the bottom of the tutorial.

You can now define default values for your function parameters in JavaScript. The default value will be used when an argument is missing or it evaluates to undefined.

It’s very easy to understand with a simple example. Notice how the value 3 is used when y is not provided or when undefined is provided:

function add(x, y = 3) {
  console.log(x + y);

add(3, 9); // 12
add(3) // 6
add(12, undefined) // 15
add(undefined, 8); // NaN, x doesn't have a default value

Default parameters can be really useful to ensure you have at least an empty array or object literal available when performing operations. Here’s an example with a default parameter:

function addToGuestList(guests, list = []) {
  console.log([...guests, ...list]);

addToGuestList(['Bob', 'Andy']); // ['Bob', 'Andy']
addToGuestList(['Bob', 'Andy'], ['Roger']); // ['Bob', 'Andy', Roger]

And the same example without:

function addToGuestList(guests, list) {
  console.log([...guests, ...list]);

addToGuestList(['Bob', 'Andy']); // ['Bob', 'Andy', undefined]
addToGuestList(['Bob', 'Andy'], ['Roger']); // ['Bob', 'Andy', Roger]
Creative Commons License