원시형 자료의 종류는 문자(string), 숫자(number), bigint, 불린(boolean), 심볼(symbol), null, undefined 형으로 총 일곱 가지 입니다.
객체는 대괄호 { } 를 이용해 만들며 함수를 프로퍼티로 저장한 메서드를 가집니다.
자바스크립트에서는 원시형 자료도 객체처럼 메서드를 가질 수 있습니다.
원시값을 객체처럼 사용하기 위해 래퍼 객체 를 이용합니다.
원시 래퍼 객체 는 원시값이 메서드나 프로퍼티에 접근할 수 있도록 해주며, 기능 수행 완료 시 곧 삭제되어 메모리 등 효율성 문제를 해결합니다.
래퍼 객체 는 원시 자료형의 이름을 그대로 착안하여 String, Number, Boolean, Symbol 이라 부르며, 객체마다 다른 메서드를 제공합니다.
let str = "Hello";
alert( str.toUpperCase() ); // HELLO
위처럼 객체가 아닌 원시형 자료에서 메서드를 호출할 수 있습니다.
원시값으로 메서드를 불러오는 과정은 다음과 같습니다.
str 에서 프로퍼티 toUpperCase 에 접근하는 순간 래퍼 객체 String 생성"Hello" 의 값을 알고, 다양한 메서드를 지님toUpperCase 실행, 새로운 문자열 반환str 만 남음이렇듯, 객체로서 사용하면 래퍼 객체를 생성하여 기능을 수행하고,
기능 수행이 끝나면 생성한 래퍼 객체를 없애는 식으로 동작합니다.
원시값을 객체처럼 사용할 수는 있지만, 기본적으로 객체와는 차이점이 있습니다.
읽기 만 가능. 쓰기 는 ❌