undefined vs null vs NaN

ckvelog·2021년 11월 13일
0

기술면접

목록 보기
26/30

undefined

undefined는 원시 타입(Primitive Type)이다.
변수를 선언하고 값을 할당하지 않을 때 undefined이 자동으로 할당된다.

함수가 값을 리턴하지 않을 때도 undefined가 할당된다.
메서드와 선언에서 변수가 할당받지 못한 경우에도 undefined가 출력된다.


null

null은 원시 타입(Primitive Type)이다.
변수를 선언하고 빈 값(null)을 할당한 상태이다.
의도적으로 값이 없다는 것을 표현한다.


NaN

NaN은 원시 타입(Primitive Type)중 Number 타입에 속하는이다.

typeof NaN // number
typeof null // 'object' 
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

중요한 사실1 : typeof undefined는 undefined이다.
중요한 사실2 : undefined == null 은 true 이다. 둘다 근본적으로는 값이 없음을 의미한다.
중요한 사실3 : typeof null은 출력하면 object이다. 하지만 사실은 null원시 타입이 맞고, 이는 자바스크립트에서 구현 버그로 간주되는 부분이다.


정리

  • nullundefined 모두 값이 없음을 의미하고, 둘다 원시 타입이고, __falsy에 해당하는 값이다.
  • null은 값이 비어있음을 나타내며, 값이 없는 값이 변수에 등록되어 있는 것이다.
  • undefined는 변수를 선언하면 초기값으로 할당되는 값이다.
  • NaN은 원시 타입 중 숫자 Number 타입에 속하는 값이다.

0개의 댓글