Is there a null-coalescing (Elvis) operator or safe navigation operator in javascript?

I’ll explain by example:

Elvis Operator (?: )

The “Elvis operator” is a shortening
of Java’s ternary operator. One
instance of where this is handy is for
returning a ‘sensible default’ value
if an expression resolves to false or
null. A simple example might look like
this:

def gender = user.male ? "male" : "female"  //traditional ternary operator usage

def displayName = user.name ?: "Anonymous"  //more compact Elvis operator

Safe Navigation Operator (?.)

The Safe Navigation operator is used
to avoid a NullPointerException.
Typically when you have a reference to
an object you might need to verify
that it is not null before accessing
methods or properties of the object.
To avoid this, the safe navigation
operator will simply return null
instead of throwing an exception, like
so:

def user = User.find( "admin" )           //this might be null if 'admin' does not exist
def streetName = user?.address?.street    //streetName will be null if user or user.address is null - no NPE thrown

22 Answers
22

Leave a Comment