nullとundefined

構文の説明

//JavaScriptでは let を使って変数を定義できます。
//値を代入せずに宣言した場合、その変数の値は undefined(未定義) になります。

//値が定義された状態
let a = 10;
console.log(a); //出力結果 10

//値が定義されていない状態
let b;
console.log(b); //出力結果 undefined

//また、値が「何もない」ことを意図して表したい場合は null を使います。
let c = null;
console.log(c); //出力結果 null

nullとundefined

リテラル意味
undefinedundefined未定義
nullobject(意図的な)空

例題

次のコードをコンソールでどのように表示されるか確認してみましょう。

let a;
console.log(a);

let b = null;
console.log(b);

undefined
null

console.log(typeof リテラル);でそのリテラルの型が確認できます。

let a;
console.log(typeof a); //出力結果 undefined

let b = null;
console.log(typeof b); //出力結果 object

問題

次のコードをコンソールでどのように表示されるか確認してみましょう。

let a;
console.log(a);

undefined

let b = null;
console.log(b);

null

let c = "";
console.log(c);

""

''や""は「何も書いていない」ように見えますが文字列(空文字) です。値がないわけではありません。

let d = "null";
console.log(typeof d,d);

string null

問3と同じようにnullを''や""で囲むと「null」という文字が入った文字列になります。

console.log(e);

Uncaught ReferenceError

この問題の e は、変数そのものが存在していないため、Uncaught ReferenceError(「その名前の変数は見つかりません」というエラー)となります。

let e;
console.log(e); //出力結果 undefined;
console.log(ee); //Uncaught ReferenceError

//undefined:変数はあるが、値がまだ入っていない
//Uncaught ReferenceError:変数そのものが存在しない