My new favourite thing in JS is Nullish coalescing:
The nullish coalescing operator (
??
) is a logical operator that returns its right-hand side operand when its left-hand side operand isnull
orundefined
, and otherwise returns its left-hand side operand.
return this.thing1 ?? this.thing2 ?? 'default'
Also works well with the Optional Chaining Operator, which is also great - not more “Uncaught TypeError: Cannot read property ‘thing1’ of undefined”:
return this?.things.?.thing1 ?? this?.things?.['thing2'] ?? 'default'
This is like logical or - ||
- but instead of testing for truthy
& falsy
, it tests for nullish
- which is often what you want.
Nullish all the things!