JavaScriptにおけるnullとundefinedの違いを分かりやすく解説!

JavaScript

JavaScriptのnullとは

変数にNULLを代入することで、その変数が現在は値を持たないが、将来的に値を持つようになることを示すことができます。

つまり、nullは空である(値がないこと)を意味します。

let test = null;

alert(test); // null 

上記の例では、変数testにnullが代入されています。これは変数を定義したものの、まだ値を代入していないため、値がないことを意味します。

nullはオブジェクト型です。例えばtypeof nullは “object “を返します。

例えば、document.getElelementByIDを使ってDOM要素を見つけようとした場合、もし要素が見つかったらnullを返します。

そのため、その要素に対して何かをする前に、NULLかどうかをチェックすることをお勧めします。

let saveButton = document.getElementById("save");

if (saveButton !== null) {
  saveButton.submit();
}

条件式では、NULL値はfalseと評価されます。

そのため、NULL値をチェックするために===や!==などの比較演算子を使う必要はありません。

var test = null;

if (test) {
  console.log("変数testはnullじゃない');
} else {
  console.log("変数testはnullです" );
}

JavaScriptのundefinedとは

undefinedはJavaScriptにおけるプリミティブな値でもあります。

変数やオブジェクトがundefinedであるのは、それを使う前に何も値が代入されていないときです。

つまり、undefinedとは、値がない、値がわからないという意味です。

let test;

console.log(test); // undefined

上の例では、「test」という変数に何も値を代入していません。変数’test’には値がない。つまり未定義です。

typeof undefinedはundefinedを返し、オブジェクトは返しません。

オブジェクトの存在しないプロパティやメソッドを呼び出すと、undefinedの値を取得することになります。

function Sum(x, y) {
    var result = x + y;
}

let result = Sum(10, 5);
console.log(result); // undefined 

undefinedは、条件式で使用された場合、falseと評価される。

let test;

if (test) {
  console.log("変数testはtrueです");
} else {
  console.log("変数testはfalseです");
}

null や undefined は、JavaScript アプリケーションで実行時エラーを発生させる主な原因の 1 つです。

これは、未知の戻り変数の値を使用する前にチェックしない場合に発生します。

変数が常に何らかの値を持つことが確実でない場合、変数の値を使用する前にnullまたはundefinedかどうかを確認することが最良の方法です。

タイトルとURLをコピーしました