짹뚜 스튜디오

[Primitive Data Types] #2. Wrapper Object (래퍼 객체) 본문

개발 공부/javascript

[Primitive Data Types] #2. Wrapper Object (래퍼 객체)

짹뚜 2021. 12. 15. 14:21

해당 글은 모든 자바스크립트 개발자가 알아야 하는 33가지 개념에서 두 번째인 Primitive Data Types 항목을 공부하면서 간단하게 작성한 글이다.

let str = "hello";
console.log(str.length); // 5

 

위에 코드에서 str은 string 타입으로 생성이 되어있고 Primitive Data Type이기 때문에 메서드나 프로퍼티를 가질 수 없다. 그러나 다음 줄을 보면 객체처럼 메서드를 호출했는데도 오류가 발생하지 않은 것을 확인할 수가 있는데, 이것이 가능한 이유는 Wrapper Object 때문이다.

Wrapper Object(래퍼 객체)

래퍼 객체란 말 그대로 Primitive Data Type을 감싸는 객체를 얘기한다. Primitive Data Type 중에 래퍼 객체가 존재하는 것은 number, string, boolean, symbol이 있다. 그래서 해당 타입들은 메서드나 프로퍼티에 접근을 할 때 내부적으로 new 키워드를 사용해서 해당 타입의 객체가 임시로 만들어진다. (위의 코드를 예를 들어서 str.length가 실행되면 new String(str).length 가 실행된 것처럼 된다.)

 

이렇게 Primitive Data Type이 자동으로 래퍼 객체로 변환하는 것을 Auto-boxing이라고도 한다.

 

래퍼 객체는 메서드나 프로퍼티에 접근을 할 때만 임시적으로 생성이 되고 그 뒤에 바로 삭제된다.

let str = "hello";
str.id = 1; // 에러가 발생하지는 않음
console.log(str.id); // undefined;
Comments