値を比較する時にundefinedとnullどちらが良いのか

値を比較する時にundefinedとnullどちらが良いのか

undefined、nullとは

javascriptのundefinedは値が未定義する時のデータタイプです。
javascriptのnullは値がないという値でデータタイプはObjectです。
値がないというのは空白ではなくて値がnullという意味です。
※nullのタイプがobjectというのはjavascriptのバグだと出ていますが、javascriptの仕様だと思えば問題ないです。 

undefinedとnullの違い

変数の宣言した場合にundefinedとなってしまいます。
nullはプルグラマが明示的に指定した場合にnullとなります。

let variable;
console.log(variable) // undefined
variable = null;
console.log(variable) // null

javascriptでデータの存在有無チェックする方法

データの存在有無を確認するときは基本タイプ(string, number, boolean)と参照タイプのObjectが違います。
基本タイプはnullで値をチェックする方が一般的です。  未定義の変数を比較するのはよろしくないです。

// 必ず変数は値を入れておくことが大事。
let variable = null;
let area_flag = false;
if(area_flag === true) {
    variable = true;
}
if(variable !== null) {
    //処理
}

Objectタイプの場合はLibによりますが、 値の存在有無を確認する際はundefinedが一般的です。
たまにnullで比較もできますが、
それはメソッドのreturnが何もない時にnullをreturnするので、そういう場合はnullで存在有無をチェックしましょう。

const array = [1, 2, 3];
if(array[3] !== undefined) {
    //処理
}

まとめ

比較するときはもっと厳しい===を使って比較をします。
値の存在チェックをする際はprimary typeはnullでreference typeはundefinedを比較する習慣を作っていきましょう!