JavaScript에서 typeof(null)이 'object'를 반환하는 이유

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

웹 개발

대상자

JavaScript 개발자, 특히 타입 체크와 언어 특성에 관심 있는 초보자~중급자

핵심 요약

  • typeof(null)'object'를 반환하지만, 이는 JavaScript의 역사적 버그로 인한 오류이다.
  • null은 원시 값이지만, typeof 연산자는 오류로 인해 객체 타입으로 인식된다.
  • 이 버그는 기존 코드 호환성을 위해 유지되고 있다.

섹션별 세부 요약

1. 문제 상황

  • console.log(typeof(null))'object'를 출력한다.
  • 이는 모든 JavaScript 개발자가 경험할 수 있는 일반적인 혼란이다.

2. 기술적 원인

  • JavaScript 초기 버전에서 typeof 연산자의 구현 오류로 인해 발생했다.
  • null은 원시 값이지만, typeof객체 타입으로 잘못 판단한다.

3. 유지 이유

  • 이 버그는 기존 코드가 작동하지 않도록 방지하기 위해 수십 년간 유지되고 있다.
  • 호환성 문제로 인해 수정되지 않았다.

결론

  • typeof 대신 === null을 사용하여 정확한 타입 체크를 수행해야 한다.
  • 이 특성은 JavaScript의 역사적 버그로, 현대 개발에서 주의해야 할 중요한 언어 특성이다.