JavaScript undefined:変数のデータ型
undefined は、変数が初期化されていないか、あるいは値が明示的に設定されていないことを示す特殊な値です。JavaScriptの実行環境によっては、未定義の変数や関数にアクセスした場合にも undefined が返されます。
例えば、以下のようなコードを考えます。
let myVar;
console.log(myVar); // undefined
function myFunc() {
// 処理がない
}
console.log(myFunc()); // undefined
このコードでは、myVar という変数が宣言されていますが、初期値が設定されていないため、値が undefined になります。また、myFunc という関数は、処理がないため何も返さず、undefined が返されます。
undefined は、型としても存在します。データ型の1つである undefined は、値が undefined である変数やオブジェクトのプロパティを参照するときに返されます。undefined 値を持つ変数やオブジェクトのプロパティを参照すると、undefined 値が返されます。また、未定義の変数や関数にアクセスすると、エラーが発生します。
以下は、undefined の例です。
let myVar;
console.log(typeof myVar); // "undefined"
let myObj = { prop: undefined };
console.log(myObj.prop); // undefined
console.log(myNonExistentVar); // ReferenceError: myNonExistentVar is not defined
この例では、myVar
の型が undefined
であること、myObj
のプロパティ prop
が undefined
であること、未定義の変数 myNonExistentVar
にアクセスするとエラーが発生することを示しています。
undefined と nullの違い
undefined と null は、共に値が存在しないことを示す JavaScript の特別な値ですが、微妙に異なります。
undefined は、変数が初期化されていない場合や、値が明示的に設定されていない場合に使用されます。また、未定義の変数にアクセスすると、undefined が返されます。
一方、null は、オブジェクトが存在しないことを示すために使用されます。変数やプロパティに null を代入することで、それらが空であることを明示的に示すことができます。
JavaScript では、undefined と null は、等価性比較演算子 == では等しいと判定されますが、厳密等価演算子 === では異なると判定されます。
以下は、undefined と null の違いを示す例です。
let myVar1;
let myVar2 = null;
console.log(myVar1); // undefined
console.log(myVar2); // null
console.log(myVar1 == myVar2); // true
console.log(myVar1 === myVar2); // false
この例では、myVar1 は初期化されていないため、値が undefined であることが示されています。一方、myVar2 には明示的に null が代入されているため、null が表示されます。myVar1 と myVar2 を比較すると、等価性比較演算子 == では true が返されますが、厳密等価演算子 === では false が返されます。