본문 바로가기
Javascript

null, undefined, undeclared, NaN 차이점

by 이매➰ 2024. 10. 30.

null

  • 의미
    의도적으로 값이 없음을 나타내기 위해 사용된다
    어떤 변수가 "아무것도 가리키지 않음"을 명시적으로 표현할 때 사용된다
  • 타입 : object
    이는 자바스크립트의 오래된 버그로, 실제로는 객체가 아닌 특별한 값
  • 예시
    let value = null;
    console.log(value); // null
     

undefined

  • 의미 : 변수가 선언되었지만 아직 값이 할당되지 않은 상태
  • 타입 : undefined
  • 예시
    let value;
    console.log(value); // undefined
     
    var 변수가 호이스팅됐을 때도 undefined로 초기화된다

undeclared

  • 의미 : 변수가 아예 선언되지 않은 상태
  • 타입 : ReferenceError 에러 발생 해당 변수가 선언되지 않았기 때문
  • 예시
    console.log(nonExistentVar); // ReferenceError: nonExistentVar is not defined

    let과 const가 TDZ에 있을 때도 ReferenceError가 뜨지만, 이는 undeclared와 다른 이유이다

NaN (Not-a-Number)

  • 의미 : 숫자가 아닌 값이 숫자 연산에 사용될 때 반환되는 특수한 값
  • 타입 : number
  • 예시
    let result = "hello" / 2;
    console.log(result); // NaN

'Javascript' 카테고리의 다른 글

Arrow function를 사용하는 경우  (0) 2024.11.01
require과 import 차이점  (0) 2024.10.31
실행 컨텍스트  (0) 2024.10.29
이벤트 전파  (0) 2024.10.27
마이크로태스크 큐(Microtask Queue)와 태스크 큐(Task Queue)  (0) 2024.10.26