나는 Number, String, Boolean과 같은 자바 스크립트에서 원시 및 객체 래핑 값 유형의 가용성이 문제를 일으키는 방법을 자세히 설명했습니다 (부울로의 타입 캐스팅을 포함하되 이에 국한되지 않음). 예 : object-wrapped NaN, ""그리고 false는 실제로 true로 타입 캐스트됩니다.JavaScript에서 프리미티브 및 객체 랩핑 값을 모두 사용할 수있게하는 이유는 무엇입니까?
이 모든 혼란과 문제로 인해 JavaScript에 내장 클래스에 대한 두 가지 유형의 값을 갖는 데 도움이됩니까?
편집 : 빠른 답변 주셔서 감사합니다. 자바 스크립트 작성자는 스칼라 값에 하위 메서드가있는 방법으로 래퍼 된 원주민을 만들려고했지만 분명히 역화되어 더 많은 문제를 일으킨 것으로 생각합니다.
@Delan : 초기에는 Java에 능숙한 개발자가 쉽게 JavaScript를 채택 할 수 있도록 많은 노력을 기울였습니다. 이것은 쉽게이 목표를 향한 하나의 (실패한) 시도 일 수 있습니다. 이것이 얼마나 나쁜지를 보여주는 한 가지 예로서 'Boolean'객체는 값이 false 인 경우에도 항상 true로 평가됩니다. –
리터럴에 대한 프로토 타입을 제공하기위한 구현 세부 사항으로 간주합니다. – eyelidlessness