本記事では、JavaScriptの??=演算子の使い方について詳しく解説しています。
JavaScriptの学習におすすめ書籍
1冊ですべて身につくJavaScript入門講座

メリット
- 誰でも分かるように嚙み砕いて説明してくれる
- アニメーションの知識が深く学べる
- 1つのWebサイトを作りながら学べる


Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!



初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!
全プログラマー必見!
変数名/関数名にもう悩まない!
変数名/関数名にもう悩まない!
リーダブルコード


メリット
- 美しいコードが書けるが自然と書けるようになる
- 他の開発者が理解しやすいコードになる
著:Dustin Boswell, 著:Trevor Foucher, 解説:須藤 功平, 翻訳:角 征典
¥2,640 (2023/07/23 02:48時点 | Amazon調べ)


目次
??=演算子とは
??=演算子とは、ES2021で新しく追加された演算子の一つです。この演算子は対象の変数に代入されている値がnullまたはundefinedの場合にのみ右辺にセットしている値を代入する性質を持っています。
ES2021で追加された||=演算子と非常に似ている性質ですが、||=演算子はfalsyな値を全て認識してしまいます。
??=演算子の使い方
??=演算子の使い方はとても簡単で、左辺に対象の変数をセットし、右辺に対象の変数に代入されている値がnullまたはundefinedだった場合に代入させたい値をセットします。
let num1; // 値:undefined
num1 ??= 1;
console.log(num1); // => 1
let num2 = null; // 値:null
num2 ??= 1;
console.log(num2); // => 1
let num3 = 0; // 値:0
num3 ??= 1;
console.log(num3); // => 0
上記のコードを??=演算子を使わずに書いたらどうなるか見ていきましょう。
let num;
num = num !== undefined && num !== null ? num : 1;
console.log(num); //=> 1
??=演算子のコードと比べてどうでしょうか?パッと見ただけだと何をしているか分かり辛いですよね。このように??=演算子を使うことで、コードの記述量を減らし可読性をグッと上げることが出来ます。