typeof Null이 기본 유형이 아님에도 불구하고 "객체"를 반환하는 이유는 무엇입니까?
"웹 개발자를 위한 전문 Javascript"를 읽으면서 당혹스러움에 직면합니다: 이 장에서는 기본 요소에 null이 포함되어 있지만 typeof(null)은 "객체"를 생성한다고 설명합니다. 기본 형식은 일반적으로 값으로 전달되고 개체는 참조로 전달되므로 이는 null의 기본 특성과 모순되는 것처럼 보입니다.
형식 조작의 역사적 뿌리
JavaScript의 역사를 자세히 살펴보겠습니다. 이 예외는 언어의 초기 구현에서 비롯된다는 것을 발견했습니다. JavaScript 초창기에는 값이 유형 태그와 값으로 특성화되었습니다. 객체의 유형 태그는 0입니다. NULL 포인터(0x00)로 표시되는 Null에 실수로 유형 태그 0이 할당되었습니다.
Remains of the Past
null과 "object" 유형 태그의 우연한 연결로 인해 잘못된 typeof(null) 결과가 발생했습니다. 언어의 후속 업데이트 및 발전에도 불구하고 기존 코드 중단에 대한 우려로 인해 이 동작이 지속되었습니다.
수정이 제안되었지만 거부됨
이 문제를 해결하기 위한 노력이 이루어졌습니다. typeof(null)을 "null"로 반환하려는 ECMAScript의 선택적 수정을 제안함으로써. 그러나 그 제안은 거절당했다. 이를 구현하면 기존 동작에 의존하는 레거시 코드가 깨질 가능성이 있는 중요한 변경 사항이 도입되었을 것입니다.
현재 상황
결과적으로 독특한 유형의(null) 동작이 남아 있습니다. JavaScript 패브릭 내에 내장되어 있습니다. JavaScript의 유형 조작은 계속해서 미묘하고 역사적으로 영향을 받은 언어 측면으로, 이러한 지속적인 특징이 그 예시입니다.
위 내용은 JavaScript에서 `typeof null`이 '객체'를 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!