NULL合体演算子(??)(JavaScript)
Nullish coalescing operator (??) (NULL合体演算子)
Nullish coalescing assignment (??=) (NULL合体代入)
JavaScript では、デフォルト値を設定するのに、論理和演算子(||)が都合良く使われていた。
JavaScript の論理和演算子は、論理値を返すのではなく、先に true と判定された値を返す。
つまり、r = 3 || 2; とすると、3 が結果として返る。
「値が null または undefined の場合に、次の値を使う」という意味合いでよく使われていたが、この論理和演算子は falsy な値を false と判定してしまうため、0 や ""(空文字列) を誤って判定してしまう。 そこで、本来求められていた「null または undefined でなければその値を使い、そうでない場合は次の値を使う」ということを示す演算子としてNULL合体演算子(??)という演算子が定義された。