JavaScriptの未定義とnullの違い


定義されていないのは、変数の値が定義されているが、値が設定されていないか全く宣言されていないときに自動的にJavaScriptによって設定されます.
nullは、プログラマが変数の値をリセットするように設定された空のオブジェクトです.
未定義が引数として関数に渡されるならば、それはNULLと同じデフォルト値を書きません.functionパラメタが渡されないならば、それは未定義です.
let a = {};
> undefined

let b = function (a=true){console.log(a);}

b(null);
> null

b(undefined);
> true

function c(a,b){ console.log(a,b);}
c(null, 5);
> 5

nullは空のオブジェクト型で、未定義の型は未定義です.
typeof(undefined);
> undefined

typeof(null);
> object

Nullは何も定義せず、定義されていないことを意味します.
null == undefined;
> true

null === undefined;
> false

未定義はJSONでは無効ですが、NULLは有効です.
NULLが同じ数を与えるNaNへの数の結果で未定義を加えます.
let a = 5 + undefined
a
> NaN

let b = 6 + null
b
> 6

最後にNULLと未定義の両方の使用を避けるべきです.ヌルを避けるのを助けるオプションの連鎖があります.