Null合体演算子
ECMAScript 2019以前では、null合体演算子の役割は論理or演算子を用いることで達成されていた。
これはJavaScriptの真偽判定のコンセプト上の問題により、null合体の正しい例ではないことに注意が必要である。このため、JavaScriptが偽であると評価する値(例えば0や偽)も同様に文の評価において合体され、望ましくない結果をもたらす可能性がある。
null合体演算子(ヌルがったいえんざんし、null coalescing operator)はC#やバージョン5.10以降のPerl、Swiftなど、いくつかのプログラミング言語に存在する、ある種の条件演算子で、PerlではDefined-or 演算子と呼ばれる。エルビス演算子も参照。C言語の3項演算子 ? : で表現すると ( (a != null) ? a : b ) というような意味のコードをより単純に書ける、一種の糖衣構文と見ることもできる。
C#ではnull合体演算子は??である。次のように用いる。
例えば、ページのタイトルが存在しない場合に既定値として"Default Title"を設定したい場合には、以下の文を用いることができる。
これは次のようなより冗長な表現の代わりとして用いることができる。
あるいは
これら3つの表現は等価である。
この演算子は同じ式の中で複数回用いることができる。
一度、非nullな値が設定されるか、最終値(nullであるかもしれないしnullでないかもしれない)にたどり着くと完了する。