Whenever I talk about ??
people have asked me the difference between Logical OR (||) vs Nullish coalescing (??) operators, so here is a quick post.
Truth Table for logical OR ||
:
LHS || RHS
returns either of the truthy value.
LHS | RHS | Result |
---|---|---|
null | 1 | 1 |
undefined | 1 | 1 |
0 | 1 | 1 |
false | 1 | 1 |
'' | 1 | 1 |
`` | 1 | 1 |
NaN | 1 | 1 |
Truth table for Nullish coalescing ??
:
Returns the RHS for "nullish" LHS values.
Else returns RHS.
[nullish
-> null
or undefined
]
LHS | RHS | Result |
---|---|---|
null | 1 | 1 |
undefined | 1 | 1 |
0 | 1 | 0 |
false | 1 | false |
'' | 1 | '' |
`` | 1 | `` |
NaN | 1 | NaN |
Quick image with more details: