기존에 여러 키워드들에 공부하고 포스팅할때를 생각해보면 대다수가 자동으로 오브젝트를 통해 설정되었습니다. 하지만, Primitive값은 오브젝트가 아니라 값이며 함수를 가지고있지도 않습니다.
예를들어 const num = 100;
을 실행하면 num이라는 변수에는 100만 할당되며 그외에 어떤것도 할당되지 않습니다. 100 자체가 num의 primitive 값입니다.
ES5에서는 primitive 값 타입이 string
, number
, boolean
, null
, undefined
이 있습니다.
ES6에서는 symbol
타입이 추가되었습니다.
const num = 100;
wrapper 오브젝트란 Primitive 값이 포함된 오브젝트로 Primitive값과는다르게 메소드가 있습니다.
우리가 많이 사용하던 오브젝트로 대표적으로는
string: String
number: Number
boolean: Boolean
symbol: Symbol
오브젝트들이 있습니다.
const obj = new String(100);
[[
이렇게 Wrapper 오브젝트를 이용하면 내부의 메소드들이 연결되어있고 [[PrimitiveValue]] 가설정되어 사용할 수 있습니다. 그런데 내부 형태가 조금 다른 wrapper 오브젝트가 있는데 바로 Symbol입니다.
const sym = Symbol("ABC");