Null合体演算子とは?
論理演算子の一種です。この演算子は左辺が null
または undefined
の場合に右の値を返し、それ以外の場合に左の値を返します。
参考:https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Nullish_coalescing
私は初めて見た時に「なんこれ。どういう判定?」と思いました。
今でもどんな処理がされているっけとなるのでメモとして残しておこうと思います。
使い方
1. 左辺がNull
orundefined
の場合
const example1 = null ?? "右辺";
console.log(example1); //右辺
const example2 = undefined ?? "右辺";
console.log(example2); //右辺
example1,example2ともに右辺が出力されています
2. Null
orundefined
が含まれていない場合
const example3 = "左辺" ?? "右辺";
console.log(example3); //左辺
const example4 = "" ?? "右辺";
console.log(example4); //""
左辺が優先され出力されます
Null
orundefined
しかNull合体演算子の判定条件にならないので0
や``
は左辺が出力されることになります(example4)
例えば配列があって、存在しないインデックスにアクセスしたとします
null合体演算子を使わず、if文で書くとすると...
if (num[10] === undefined) {
console.log("数値ではありません");//こちらが出力される
} else {
console.log("数値です");
}
数値である場合と数値でない場合の2種類処理を書かなければなりません
しかし、Null合体演算子を使うことで...
const num: number[] = [1, 2, 3];
const check1 = num[0] ?? "数値です";
const check2 = num[10] ?? "数値ではありません";
console.log(check1, check2);//数値ではありません,数値です
一文で処理を終わらせることができます
Null合体代入演算子(??=)というのもあるようなので、また別の機会に。。。