Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2020年7月以降、すべてのブラウザーで利用可能です。
ヌル値合体演算子 (??) は論理演算子の一種です。この演算子は左辺が null または undefined の場合に右辺のオペランドを返し、それ以外の場合に左辺のオペランドを返します。
ヌル値合体演算子は、論理和演算子 (||) の特殊形と見なすことができます。後者は左辺の値が null や undefined だけでなく、何らかの偽値であった場合に右辺値を返すものです。言い換えると、|| を使って別の変数 foo に何らかの既定値を与える場合、一部の偽値('' や 0 など)を使用可能とみなすと、予想外の動作に遭遇することがあります。詳しい例は以下を参照してください。
ヌル値合体演算子は演算子の優先順位が下から 5 番目で、 || のすぐ下、条件(三項)演算子のすぐ上です。
論理積演算子 (&&) と論理和演算子 (||) のどちらかを、 ?? と直接結合することはできません。このような場合、構文エラーが発生します。
代わりに、括弧を使用して優先順位を明示的に指定してください。
次の例では、既定値を設定していますが、null や undefined 以外の値は保持されます。
以前は、変数に既定値を代入したい場合の一般的なパターンは、論理 OR 演算子(||)を使用することでした。
しかし、|| が論理演算子であるため、左辺の値は評価によって強制的に論理値になり、偽値(0、''、NaN、false など)が返されることはありません。この動作は、 0、''、NaN を有効な値と考えている場合、予期せぬ結果を引き起こす可能性があります。
ヌル値合体演算子は、左辺の値が null もしくは undefined のどちらか(その他の falsy な値は含みません)に評価された場合にのみ右辺の値を返すことで、この潜在的な危険を回避します。
「論理和」演算子や「論理積」演算子と同様に、左辺が null でも undefined でもないことが判明した場合、右辺の式は評価されません。
ヌル値合体演算子は、 undefined と null を特定の値として扱いますが、オプショナルチェーン演算子 (?.) も同様の扱いをします。この演算子は、null または undefined である可能性のあるオブジェクトのプロパティにアクセスするのに便利です。
| ECMAScript® 2027 Language Specification # prod-CoalesceExpression |
ブラウザー互換性一覧表を表示するには、JavaScript を有効にしてください。
より良いインターネットのための青写真。
このコンテンツの一部は、©1998–2026 個人の mozilla.org 協力者です。コンテンツはクリエイティブ・コモンズ・ライセンスのもとで利用できます。