Javascript + Typescript/이론과 문법

null, NaN, undefined 차이

치춘 2022. 3. 25. 23:33

undefined

Boolean(undefined) //false
Number(undefined) //NaN
String(undefined) //"undefined"

선언은 되었지만 값이 할당되지 않은 상태 ⇒ 초기화하지 않은 변수

  • Boolean 문맥에선 false 반환
  • Number 문맥에선 NaN 반환

null

Boolean(null) //false
Number(null) //0
String(null) //"Number"

아무런 값도 나타나지 않음

값 자체가 없다는 뜻 (undefined) 이 아니라 값은 존재하지만 어떠한 유효한 값도 아니라는 뜻

  • Boolean 문맥에선 false 반환
  • Number 문맥에선 0 반환

NaN

Boolean(NaN) //false
Number(NaN) //NaN
String(NaN) //NaN
(NaN === NaN) //false
isNaN(NaN) //true

‘숫자가 아니다' 를 의미 (Not a Number)

  • undefinedNumber로 형변환 하면 값이 없으므로 NaN으로 변환됨
  • nullNumber로 형변환 하면 0으로 변환됨