JavaScriptのnull合体演算子とは?使い方をわかりやすく解説
JavaScriptのnull合体演算子とは
「null合体演算子」とは、左辺の値がnullまたはundefinedである場合に、代わりに右辺の値(デフォルト値)を返す演算子です。C#では ?? がnull合体演算子として広く知られていますが、実はJavaScriptにもES2020から同じ ?? 演算子が導入されています。
従来の論理和演算子(||)との違い
以前のJavaScriptでは、デフォルト値の設定に ||(論理和)演算子がよく使われてきました。|| は2つのオペランドのうちどちらか一方でも真と評価されれば条件式全体がtrueになる論理演算子です。ただし、左辺がfalseと評価されるすべての値(false、0、空文字列 ""、NaN など)の場合にも右辺を返してしまう点に注意が必要です。
一方、?? は左辺がnullまたはundefinedの場合にのみ右辺を返すため、0 や空文字列といった有効な値をそのまま扱いたい場面でより安全に動作します。
|| 演算子の使用例
以下は、JavaScriptで var 変数と || 演算子を組み合わせて使用する例です。
<html>
<body>
<script>
var a = true;
var b = false;
document.write("(a || b) => ");
result = (a || b);
document.write(result); // 「true」が出力される
</script>
</body>
</html>この例では変数 a が true であるため、(a || b) の結果は true となります。
?? 演算子の使用例
|| と ?? の挙動の違いは、次のコードで確認できます。
let count = 0; // ?? : null / undefined 以外はそのまま返す let r1 = count ?? 10; // 結果は 0 // || : falsyな値なら右辺を返す let r2 = count || 10; // 結果は 10
このように、0 や空文字列などを意味のある値として扱いたい場合は ?? を使うのが推奨されます。
-
JavaScriptのビットごとのOR(|)演算子とは?使い方をわかりやすく解説
JavaScriptにおけるビットごとのOR(|)演算子は、2つの数値を2進数のビット列として比較し、対応するビットのどちらか一方でも「1」であれば結果として「1」を返す演算子です。両方のビットが「0」の場合のみ、結果は「0」になります。ビットOR演算の基本ルールビットごとのOR演算は、以下のようなルールで各ビットが評価されます。0 | 0 → 00 | 1 → 11 | 0 → 11 | 1 → 1サンプルコード以下のコードを実行すると、JavaScriptのビットごとのOR(|)演算子の動作を確認できます。この例では、「7」と「1」をOR演算しています。<!DOCTYPE html&
-
JavaScriptに「null合体」演算子はありますか?
はい、JavaScriptには「null合体(null coalescing)」に相当する仕組みがあります。モダンなJavaScript(ES2020以降)では、専用のnull合体演算子(??)が利用できます。さらに、以前から使われている論理OR(||)でも同様の処理を実現可能です。論理OR(||)を使ったnull値の扱い方変数がnullやundefinedのときにデフォルト値を代入したい場合、次のような構文が使えます。var anyVariableName = null; var anyVariableName = yourVariableName || yourActualValue;この