원시값의 메서드
원시값의 메서드
JS 는 원시값 객체처럼 다룰 수 있게 해줌
-
원시값 객체처럼 사용하기
고려
-
원시값의 메서드를 사용
-
원시값은 가능한 한 빠르고 가볍게
해결법
-
원시값은 원시값 그대로 남겨 단일값 유지
-
문자열, 숫자, 불린, 심볼의 메서드와 프로퍼티에 접근할 수 있도록 언어 차원에서 허용
-
원시값이 메서드나 프로퍼티에 접근하려 할 때 추가 기능을 해주는 특수한 객체 원시 래퍼 객체 만들어줌. 이 객체는 곧 삭제
-
-
레퍼 객체
원시 타입에 따라 종류 다르고 각 종류마다 제공하는 메서드 다름
알고리즘
-
원시값의 프로퍼티에 접근하는 순간 특별한 객체 만들어 짐 이 객체는 원시값 알고 있꼬 유용한 메서드 가지고 있음
-
메서드 실행되고 새로운 원시값 반환
-
특별한 객체 파괴, 원시값만 남음
JS 엔진은 위 프로세스의 최적화에 많은 신경 씀
-
-
String/Number/Boolean 생성자로 쓰기 금지
new 사용해 원하는 타입의 “래퍼 객체” 만들기 가능
객체를 return 하기 때문에 사용 지양
new 사용하지 않을 시 원시값 return
-
null/undefined 는 메서드 없음
“래퍼 객체” 없고 메서드도 없음
가장 원시적
요약
-
JS 는 원시값 객체처럼 다룰 수 있게 해줌
-
원시값에 메서드와 프로퍼티 접근하도록 허용
-
호출 할 시 원시 래퍼 객체 만들고 곧 삭제.
-
원시 래퍼 객체는 새로운 원시값 반환 후 바로 삭제.
-
JS 엔진이 최적화에 신경 씀
-
원시값 생성자로 쓰면 객체 반환 됨
-
함수로 쓸 시 원하는 원시값 return
-
null/undefined 는 메서드 없음
-
원시값에 프로퍼티 추가할 때 엄격모드 일 시 래퍼 객체 수정할 수 없음으로 에러, 비 엄격모드 일 시 프로퍼티 추가 가능