【JavaScript】値のない変数「undefined」について

JavaScriptにおけるundefinedは、値が割り当てられていない変数を示す特殊なデータ型です。undefinedとは、変数が宣言されているもののまだ値が与えられていない状態を表します。また、関数が値を返さない場合においてもundefinedが戻り値となります。

undefinedの例

ここからはundefinedがどのような場合に返ってくるのかを見てみましょう。

変数の宣言のみが行われた場合:

   let a;
   console.log(a); // undefined

ここではaが宣言されていますが、値が割り当てられていないため、undefinedが出力されます。

オブジェクトの存在しないプロパティにアクセスした場合:

   const obj = { name: "Alice" };
   console.log(obj.age); // undefined

objオブジェクトにはageプロパティが存在しないため、undefinedが返されます。

関数が値を返さない場合:

   function test() {}
   console.log(test()); // undefined

test関数は何も返さないため、その戻り値はundefinedになります。

nullとundefinedの違い

undefinedとよく比較されるnullもJavaScriptには存在しますが、nullは「何もない」状態を意図的に表現するために使われます。一方、undefinedは変数に値がまだ割り当てられていないことを示すために自動的に設定されます。

JavaScriptでのnullundefinedは似て非なるものです。以下にその違いを説明します。

1. 意味の違い

  • undefined: 変数が宣言されたが、まだ値が割り当てられていない状態を指します。この場合は自動的に設定されます。
  • null: プログラマが意図的にに「値がない」ことを表すために設定する値です。

2. の違い

  • undefinedは自身の型を持っています(undefined)。
  • nullはオブジェクト型として扱われます。

3. 比較と演算

  • nullundefined==(等価演算子)で比較すると等しいとみなされますが、===(厳密等価演算子)を使うと異なるとみなされます。
   console.log(null == undefined); // true
   console.log(null === undefined); // false
上部へスクロール