JavaScript/undefined
undefined
編集undefined
は、JavaScriptにおけるプリミティブ型の一つで、変数が未定義の状態や、値が設定されていないことを示します。undefined
はグローバルスコープで定義された特殊な値であり、多くの場合において「何も設定されていない」状態を示します。
特徴
編集undefined
は、未初期化の変数や、存在しないオブジェクトのプロパティにアクセスしたときに返される値です。- JavaScriptのグローバルスコープには
undefined
という名前の定数が存在します。 - 明示的に設定することもできますが、通常は未定義の状態を表すために自動的に設定されます。
let value; // 変数を宣言するが初期化しない console.log(value); // undefined
主な用途
編集- 未初期化の変数: 変数が宣言されただけで値が設定されていない場合、自動的に
undefined
が割り当てられます。let value; // 初期化していない console.log(value); // undefined
- 存在しないプロパティ: オブジェクト内の存在しないプロパティにアクセスすると
undefined
が返されます。let obj = {}; console.log(obj.property); // undefined
- 戻り値がない関数: 関数が明示的に値を返さない場合、その戻り値は
undefined
になります。function noReturn() {} console.log(noReturn()); // undefined
let value1; // 初期化されていない let value2 = null; // 値が存在しないことを明示的に設定 console.log(value1); // undefined console.log(value2); // null
undefined
は非厳密等価演算子(==
)で null
と等しいと評価されますが、厳密等価演算子(===
)では異なると評価されます。
console.log(undefined == null); // true console.log(undefined === null); // false
グローバルの undefined
は再定義可能であるため、値が undefined
かどうかをチェックする際には、typeof
演算子の使用が推奨されます。
let value; console.log(typeof value === "undefined"); // true
注意点
編集let value = undefined; // 非推奨 let value = null; // 推奨