on your mark
[JAVASCRIPT.INFO] 5.1 원시값의 메서드 본문
5.1 원시값의 메서드
자바스크립트는 원시값을 마치 객체처럼 다룰 수 있게 한다.
원시값을 객체처럼 사용하기
- 문자열이나 숫자와 같은 원시값을 다루어야 하는 작업이 많은데, 메서드를 사용하면 작업을 수월하게 할 수 있음
- 원시값은 가능한 한 빠르고 가벼워야 함
이를 해결하기 위해 다음과 같은 해결책을 모색함
- 원시값은 원시값 그대로 남겨둬 단일 값 형태 유지
- 문자열, 숫자, 불린, 심볼의 메서드와 프로퍼티에 접근할 수 있도록 언어 차원에서 허용
- 원시값이 메서드나 프로퍼티에 접근하려 하면 추가 기능을 제공해주는 특수한 객체, "원시 래퍼 객체(object wrapper)"를 만들어 주고 이 객체는 삭제됨
"래퍼 객체"는 원시 타입에 따라 종류가 다양함
let str = "Hello";
alert(str.toUpperCase()); // HELLO
str.toUpperCase()
가 호출될 떄 내부에서 실제로 일어나는 일
- 문자열
str
은 원시값이므로 원시값의 프로퍼티 (toUpperCase)에 접근하는 순간 특별한 객체가 생성. 이 객체는 문자열의 값을 알고 있고,toUpperCase()
와 같은 유용한 메서드를 가지고 있음 - 메서드가 실행되고, 새로운 문자열이 반환됨(
alert
창에 이 문자열이 출력됨) - 특별한 객체는 삭제되고 원시값
str
만 남음
이러한 프로세스를 통해 원시값을 가볍게 유지하면서 메서드를 호출할 수 있음
null/undefined
는 메서드가 없다
특수 자료형인 null
과 undefined
의 원시값 (null/undefined
)은 위의 법칙을 따르지 않는다. 이 자료형과 연관되는 "래퍼 객체"도 없고, 메서드도 제공하지 않는다.
alert(null.test); // error
'WEB > Javascript' 카테고리의 다른 글
[JAVASCRIPT.INFO] 5.3 문자열 (0) | 2023.01.04 |
---|---|
[JAVASCRIPT.INFO] 5.2 숫자형 (1) | 2023.01.02 |
[JAVASCRIPT.INFO] 4.8 객체를 원시형으로 변환하기 (0) | 2022.12.31 |
[JAVASCRIPT.INFO] 4.7 심볼형 (0) | 2022.12.28 |
[JAVASCRIPT.INFO] 4.6 옵셔널 체이닝 '?.' (0) | 2022.12.28 |