본문 바로가기
2023/멋쟁이사자처럼_FE5

[JS] Undefined와 null의 차이점이 무엇인가요?

by ye-jji 2023. 5. 2.

1. null

  • null 값은 일반적으로 존재하지 않거나 유효하지 않은 object 또는 주소를 의도적으로 가리키는 참조를 나타냅니다.
  • 모든 객체는 null 값으로 부터 파생되며 따라서 typeof 연산자는 아래의 코드에서 object를 반환합니다.
typeof null === 'object' // true
//null 타입을 확인할 때 일치 연산자(===)를 사용해야 함

var foo = 'Lee';
foo = null;  // 참조 정보가 제거됨

//또는 함수 호출시 유효한 값을 반환할 수 없는 경우에 명시적으로 반환함

2. undefined

  • undefined는 원시값으로, 선언한 후 값을 할당하지 않은 변수 혹은 값이 주어지지 않은 인수에 자동으로 할당됩니다.
  • 객체 내부에 존재하지 않는 프로퍼티에 접근할 때와 return문이 없거나 호출되지 않는 함수일 때도 undefined 를 반환합니다.
var x; // 값을 할당하지 않고 변수 선언
console.log("x's value is", x) // "x's value is undefined" 출력

//개발자가 의도적으로 할당한 값이 아니라 자바스크립트엔진에 의해 초기화된 값

3. null과 undefined의 차이

  • null 또는 undefined를 검사할 때, 동등 연산자(==)와 일치 연산자(===)의 차이를 주의하세요.
  • 동등 연산자는 자료형 변환을 수행합니다.
typeof null          // "object" (하위호환 유지를 위해 "null"이 아님)
typeof undefined     // "undefined"
null === undefined   // false
null  == undefined   // true
null === null        // true
null == null         // true
!null                // true
isNaN(1 + null)      // false
isNaN(1 + undefined) // true

참고 : 🦎 65p~67p / 🐯 29p~34p