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의 역사적 버그로, 현대 개발에서 주의해야 할 중요한 언어 특성이다.