Nullish Coalescing in Javascript
A Javascript operator that can be often overlooked is the Nullish Coalescing Operator represented as ??
. In this article we will take a look at what it does and where it can be used.
It's fairly common to come across javascript code in which the OR operator ||
is used to set a default value for a variable as can be seen below.
const myGreeting = greeting || 'Hello!';
However, using the OR operator for this purpose can actually have unintended consequences as it will fall back to the default value whenever the variable evaluates to something falsy. Let's take a look at an example in which we are setting the default value for a number.
const myNumber = number || 12;
If number = 15
then the code above would evaluate such that myNumber = 15
. If number = null
then it will use the default resulting in myNumber = 12
.
So far so good but what if we set number = 0
? We'd run into trouble because although number
has a value it's a value that when evaluated as boolean is equivalent to false
so we'd wind up falling back to our default number = 12
.
This is where the Nullish Coalescing Operator can come in very handy by switching out ||
for ??
we can guarantee the default value will only be used when number = null
or number = undefined
.
const myNumber = number ?? 12;