nullとundefinedの違いを知っていますか?

1810 ワード

事件の発端
スペースまたはnullで「再入力」メッセージを表示するコードを作成しています.
(typescriptを使用してNestJSで開発)
  • nullとundefinedは区別する必要があります.
  • //예를 들어 요런 모습
    if(data == '' || data == null)
    	return "다시 입력하세요"
    しかし
    下図に示すように、コンソールのdataはundefinedとして印刷され、対応するif文が起動します.
    console.log(data) //출력값 : undefined
    if(data == '' || data == null)
    	return "다시 입력하세요" //return 값 : "다시 입력하세요"
    ではnull=undefinedですか?(はい)
    なぜか見てみましょう!
    スタート!
    JavaScriptには、nullとundefinedの2つの「なし」を表す値があります.
    Undefinedは、値が代入されていない変数または属性を使用するために使用されます.
    nullはオブジェクトが存在しないことを示します.
    typeof演算を行い、次の値を返します.
    typeof null // 'object'
    typeof undefined // 'undefined'
    Q.では、「ない」という意味では、どちらを使うべきでしょうか?
    A.undefinedも「なし」を表す値ですが、代入されていない変数の意味があります.不在を明確に表示したい場合はnullを使用したほうがいいです.
    Null Check
    コードを記述する際には、値の有無(nullまたはundefined)を考慮する必要があります.nullまたは未定義の値をnull checkと呼ぶ操作を確認します.
    事件の起因もnull checkによって発生した.
    nullとundefinedはともに「なし」を表すため、以下の演算を行うとtrueを返す.
    undefined == null //true
    ただし、値のタイプが異なるため、以下の演算を行うとfalseが返されます.
    (未定義のデータ型はundefined、nullのデータ型はobject)
    undefined === null // false
    同じ意味を表しています.
    // 아래 세 개의 식은 완전히 같은 의미입니다.
    input !== null && input !== undefined;
    input != null;
    input != undefined;
    
    // 아래 세 개의 식은 완전히 같은 의미입니다.
    input === null || input === undefined;
    input == null;
    input == undefined;
    
    事件を解決する
    つまり,等号を2つに比較したため,このような問題が発生した.
    コメントリンク
    **typescriptもjavascriptから発展したのでjavascript構文で理解しました.