1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【TypeScript】Null合体演算子(??)

Posted at

Null合体演算子とは?

論理演算子の一種です。この演算子は左辺が null または undefined の場合に右の値を返し、それ以外の場合に左の値を返します。
参考:https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Nullish_coalescing

私は初めて見た時に「なんこれ。どういう判定?」と思いました。
今でもどんな処理がされているっけとなるのでメモとして残しておこうと思います。

使い方

1. 左辺がNullorundefinedの場合

const example1 = null ?? "右辺";
console.log(example1); //右辺
const example2 = undefined ?? "右辺";
console.log(example2); //右辺

example1,example2ともに右辺が出力されています

2. Nullorundefinedが含まれていない場合

const example3 = "左辺" ?? "右辺";
console.log(example3); //左辺
const example4 = "" ?? "右辺";
console.log(example4); //""

左辺が優先され出力されます
Nullorundefinedしか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合体代入演算子(??=)というのもあるようなので、また別の機会に。。。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?