JavaScriptのnullとは
変数にNULLを代入することで、その変数が現在は値を持たないが、将来的に値を持つようになることを示すことができます。
つまり、nullは空である(値がないこと)を意味します。
let test = null;
alert(test); // null
上記の例では、変数testにnullが代入されています。これは変数を定義したものの、まだ値を代入していないため、値がないことを意味します。
例えば、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’には値がない。つまり未定義です。
オブジェクトの存在しないプロパティやメソッドを呼び出すと、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かどうかを確認することが最良の方法です。