で定義されている


たぶん、あなたはすべての記事を読む必要はありません、私はちょうどあなたにこれを示すことができます:

未定義


Undefinedグローバルオブジェクトのプロパティです.
それは原始的な値です.
これは論理式でfalsyとして扱われます.

未定義です。

  • まだ割り当てられていない変数の型.
  • 評価された変数が割り当てられた値を持たない場合、メソッドまたは文の戻り値.
  • 値が返されない場合、関数の戻り値.
  • 明示的に変数を定義せずに設定することもできます
    const a = undefined; //accepted, but can lead to confusion!
    

    NULL


    NULLは任意のオブジェクト値の意図的な不在です.
    それは原始的な値です.
    ブール演算にはfalsyとして扱われます.
    値NULLはリテラル: nullで書きます.
    nullはグローバルオブジェクトのプロパティの識別子ではありません.
    nullは識別の欠如を表し、変数がオブジェクトを指していないことを示します.
    例えば、多くのAPIにおいて、オブジェクトが予期されることができるが、オブジェクトが関連していない場所で、NULLはしばしば読み出される.
  • nullは空であるか、存在しない値です.
  • NULLを割り当てる必要があります.
  • また、未定義とNULLは2つの異なったタイプです.
  • undefined type自体(未定義)
  • 残念ながら、NULLは型オブジェクトです!(この記事をもっと調べてくださいhttps://2ality.com/2013/10/typeof-null.html ).
  • 割り当てられていない変数はJavaScriptによって初期化されます.
    JavaScriptは、開発者によって行われなければならない値をNULLに設定しません.

    ヌルを比較して、' =='と'== '演算子を使って定義しないとどうなりますか?


    console.log(null == undefined); // true
    console.log(null === undefined); // false
    console.log(typeof null); // "object" (not "null" for legacy reasons)
    console.log(typeof undefined); // "undefined"
    

    算術演算


    もう一つの違いは、算術演算を実行しようとするときです
  • NULL結果を整数として
  • 未定義の結果
  • console.log(3 + null); //3
    console.log(3 + undefined); //NaN
    

    結論として


    定義されていないのは通常、変数が宣言されているが定義されていないことを意味します.
    NULLは代入値です.