❓
not definedな変数はNull合体演算子で使ってもエラーが出る
覚えたてのNull合体演算子(??)を使おうと下記のような内容のコードを書いたところ、エラーが出ました。
let b = 'b';
let c = a ?? b; // => Uncaught ReferenceError: a is not defined
変数aがundefinedなら変数bが代入されるはずなのでは…?としばらく悩みましたが、undefinedとnot definedは別の状態(正確には、undefinedはすでに宣言されている変数の型で、not definedは宣言されてないですよというエラー)というだけでした(恥ずかしい)
上の例でいえば、本来はこのように書く必要があります。
let a;
let b = 'b';
let c = a ?? b; // => b
Discussion