IT二刀流にはプロモーションが含まれています。

JavaScriptのNull合体演算子の使い方

JavaScriptのNull合体演算子(??)は論理演算子の1つです。

Null合体演算子(??)は左辺がnullかundefined(未定義)に右辺の値を返します。

Null合体演算子

Null合体演算子(??)を利用することで、代入する値がnullかundefined(未定義)の場合は違う値を代入することができます。

これを使用することで、デフォルト値を設定するなどの使い方ができます。

let val = undefined;
const str1 = val ?? 'default';
console.log(str1);  // "default"

val = null;
const str2 = val ?? 'default';
console.log(str2);  // "default"

val = 'test';
const str3 = val ?? 'default';
console.log(str3);  // "test"

論理OR演算子との違い

似たような演算子に「論理OR演算子(||)」があります。

論理OR演算子(||)もnullやundefined(未定義)の場合に別の値を代入することができます。

let val = undefined;  // null or undefined

const num1 = val || 100;
console.log(num1);  // 100

const num2 = val ?? 100;
console.log(num2);  // 100

しかしOR演算子は0や”(空文字列)もfalseと判定して、デフォルト値を代入します。

数字において0は有効な値なので代入されたら困るケースなどもあります。

let val = 0;
const num3 = val || 100;
console.log(num3);  // 100

const num4 = val ?? 100;
console.log(num4);  // 0

val = '';
const num5 = val || 100;
console.log(num5);  // 100

const num6 = val ?? 100;
console.log(num6);  // ''

Null合体演算子は左辺の値がnullもしくはundefinedのどちらかの場合だけ、右辺を代入します。

数字にデフォルト値を設定するときは、Null合体演算子のほうが便利ですね。

まとめ

Null合体演算子はECMAScript 2020(ES2020)でリリースされた比較的新しい演算子です。

最新のブラウザでは動作しますが、古いブラウザ(IE)や古いバージョンのnodeやbabelではエラーになる可能性があります。

node ./nullEnzan.js
nullEnzan.js:2
const str1 = val ?? 'default';
                  ^
SyntaxError: Unexpected token ?
    at Module._compile (internal/modules/cjs/loader.js:723:23)

バージョンを上げてください。

ITエンジニアの転職

いまITエンジニアの需要は急拡大しています。
ITエンジニアの経験があれば好条件で転職することも難しくありません。

転職ドラフト

☆ 支援ご協力のお願い ☆

この記事が「役に立った」と感じたら

投げ銭の「OFUSEで応援」で支援して頂けたら励みになります!

OFUSEのやり方(説明)

関連記事
記事特集