원시값의 메서드
원시값이란?
- 원시형 값
- 자바스크립트에서는 string, number, bigint, boolean, symbol, null, undefined, 총 7가지
객체와 다른점은?
- 객체는 {} (중괄호)를 사용하는 형태
- 객체는 속성 값에 다양한 종류의 값을 저장할 수 있다.
- 반면, 원시값 에는 종류에 맞는 값 하나만 저장 할 수 있다.
- 객체는 함수를 속성 값으로 저장 할 수 있다. (남용하면 시스템 자원이 많이 소모된다는 단점)
- 객체는 원시값에 비해 무겁고, 구조를 유지하기 위해서 추가적인 자원이 필요하다
원시값을 객체처럼 사용할 수 있다?
- 원시값은 원시 값 그대로 단일 형태 유지
- 언어적 차원에서 각 원시 값에 대하여 사용가능 한 (문자열, 숫자, 불린 등) 프로퍼티에 접근 할 수 있도록 허용해준다.
이게 어떻게 가능하지?
- 원시값이 메서드나 프로퍼티에 접근하기 위해서 추가 기능을 제공해주는 특수한 객체가 생성 되는데,
object wrapper
라고 한다.
- 원시 타입의 종류에 따라
object wrapper
또한 다르다.
- 얘는 사용 후 삭제된다.
예시
String 형태의 원시 값으로 예시를 확인 해 보자면,
const name = 'pilyeong'
console.log(name.length)
name
이라는 원시값의 프로퍼티에 접근해보면, object wrapper
가 생성되고 이에 따라 length
라는 프로퍼티에 접근하여 8이라는 결과 값을 받아온다.
const num = 1
console.log(num.toString())
num
의 초기값으로 1을 넣어준 후, 마찬가지로 프로퍼티에 접근하면 object wrapper
가 생성된다. 이번에는 toString()
이라는 메서드를 사용하였다.
참조