래퍼 객체는 JavaScript의 내장 객체로 원시 값(primitive value)을 감싸 객체처럼 메서드와 프로퍼티를 사용할 수 있도록 해줍니다. 그리고 메서드 호출이나 프로퍼티 참조가 끝나면 임시 객체는 바로 소멸하고 실제 원시 타입 값에는 영향을 주지 않습니다.
원시 값은 String, Number, Boolean, null, undefined와 나중에 추가된 Symbol, BigInt 총 7가지 있습니다.
코드를 보면 str은 마치 객체의 프로퍼티나 메소드를 사용하는 것처럼 동작합니다. 이는 JavaScript가 내부적으로 임시 String 객체를 생성하고, 이를 통해 메서드와 프로퍼티에 접근하기 때문입니다.
개발자가 직접 래퍼 객체를 생성하는 것은 위험할 수 있어 권장되지 않습니다. 원시 타입 값과 래퍼 객체는 서로 다르게 동작할 수 있으므로 혼란을 초래할 수 있기 때문입니다.
일반적으로는 원시 타입 값을 직접 사용하고, 필요한 메서드나 프로퍼티는 자바스크립트가 알아서 래퍼 객체를 생성하여 제공하도록 합니다.
null 및 undefined는 패러 객체가 따로 없습니다.
사실 래퍼 객체에 대해 모르고 있었습니다. 단순히 변수에 할당한 데이터 타입들은 내부적으로 객체화가 이루어졌다고 생각했기 때문입니다. 래퍼 객체에 대해 공부하며 원시 타입에 대해 되었는데 학습하고 글 작성하겠습니다.