📚
JavaScript: Logical OR (||) と Nullish Coalescing (??) の違い
JavaScriptには||
(論理OR)と??
(Nullish Coalescing)という2つの演算子があります。
これらはどちらも値がnull
またはundefined
のときにデフォルト値を設定するために使用されますが、その挙動には重要な違いがあります。
論理OR (||)
return params || "";
||
演算子は左辺の値がfalsy
(評価時に偽となる値)の場合に右側の値を返します。JavaScriptでは以下の値は falsy
と評価されます。
false
0 や -0
""(空文字列)
null
undefined
NaN
このため、params
変数がnull
やundefined
だけでなく、その他のfalsy
な値(例えば空文字列や0
)の場合にも右辺のデフォルト値(この場合は空文字列""
)が返されます。
Nullish Coalescing (??)
return params ?? "";
??
演算子はnull
またはundefined
の場合に右辺の値を返します。
この演算子は、null
とundefined
の値を確認する特別な場合に使用され、他のfalsy
な値(例えばfalse
、0
、""
)では右辺には移動しません。
これは、特にfalse
や0
などの値が有効な値として意図されている場合に便利です。
値が本当にnull
かundefined
かを確認したいときに役立ちます。
まとめ
||
演算子は、左辺の値がfalsy
(偽となる値)の場合に右辺の値を返します。
??
演算子は、左辺の値がnull
またはundefined
のときのみに右辺の値を返します。
常にどの値が予期されるか、どの値をデフォルトとして設定したいかを考慮することが重要です。
これにより、コードは予期しないバグから保護され、読みやすく保守しやすくなります。
Discussion