JavaScript에서 null, 정의되지 않음 및 선언되지 않은 변수의 차이점은 무엇입니까?

JavaScript에서는 변수 선언과 초기화를 동시에 하는 것이 일반적입니다. 또한 변수를 선언하고 초기화되지 않은 상태로 둔 다음 나중에 할당하는 것이 일반적입니다. 코드에서 평가된 모든 선언되지 않은 변수가 발생합니다ReferenceError.
nullundefined는 JS 프리미티브이며 유형 및 나타내는 값 측면에서 서로 다릅니다. 그러나 Undeclared는 JavaScript 키워드가 아닌 일반 영어입니다.

차이점


nullundefined 변수 사이에는 여러 가지 차이점이 있습니다.
  • null 값의 유형은 object 인 반면 undefined 변수는 undefined 유형입니다.
  • null는 값의 존재를 나타내지만 의도적으로 개체가 없음(따라서 object 유형), undefined 변수는 값이 없음을 나타냅니다.
  • null를 변수에 할당해야 합니다. 반대로 undefined는 선언 시 자동으로 설정되며 명시적으로 할당할 수도 있습니다.

  • 선언되지 않은 변수는 JavaScript가 선언되지 않은 변수를 처리하는 방식에서 nullundefined와 다릅니다. 선언되지 않은 변수는 ReferenceError 를 발생시키지만 해당 유형은 실제로 undefined 입니다.

    console.log(x); // Uncaught ReferenceError: x is not defined
    console.log(typeof x); // undefined
    


    여기서 typeof x가 평가되지 않기 때문에 x가 오류를 발생시키지 않는 방법에 주목하십시오.

    확인 중



    허위nullundefined는 일부 값 유형이 없음을 음수로 나타냅니다. 따라서 falsy 값이 아니라 truthy 라고 합니다.

    변수가 null인지 undefined인지 결정하려면 falsy 값을 가져와야 합니다. 즉, truthy가 아닙니다. 일반적으로 변수는 진실성을 테스트하고 실패하면 falsy , 즉 null 또는 undefined 입니다.

    let x;
    if (x) {
      console.log(`Hi, this is ${x}.`);
    } else {
      console.log(x); // undefined
    };
    
    x = null;
    if (x) {
      console.log(`Hi, this is ${x}.`);
    } else {
      console.log(`Now I'm ${x}`); // Now I'm null.
    };
    
    


    변수의 null 상태와 undefined 상태 사이를 결정하려면 완전 항등 연산자===로 변수를 테스트해야 합니다.

    let x;
    if (x === undefined) {
      console.log(`Hi, this is ${x}.`); // Hi, this is undefined.
    } else {
      console.log(x); 
    };
    
    x = null;
    if (x === null) {
      console.log(`Hi, this is ${x}.`); // Hi, this is null.
    } else {
      console.log(x); 
    };
    


    이는 표준 항등 연산자 == 가 둘 중 하나를 결정하는 데 모호하기 때문입니다. 이 두 값 중 하나에 대해 true를 반환합니다.

    let x;
    if (x == null) {
      console.log(`Hi, this is ${x}.`); // Hi, this is undefined.
    } else {
      console.log(x); 
    };
    
    x = null;
    if (x == undefined) {
      console.log(`Hi, this is ${x}.`); // Hi, this is null.
    } else {
      console.log(x); 
    };
    

    x == nulltrue에 대해 x = undefined를 반환하고 x == undefinedtrue에 대해 x = null를 반환합니다. 정신이 없습니다.

    미신고
    전역 범위에서 선언되지 않은 변수는 다음을 사용하여 ReferenceError를 발생시키지 않고 확인할 수 있습니다.

    if ( 'x' in window) {
      console.log('Hi'); 
    } else {
     console.log(`Hi, x doesn't live here.`); // Hi, x doesn't live here.
    };
    



    참조
  • undefined
  • null
  • 좋은 웹페이지 즐겨찾기