Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- react
- 3티어 아키텍처
- caverjs
- CSS Specificity
- CSS
- ES6 모듈
- NoSQL
- IP
- 명시도
- npm
- CLI
- short-circuiting
- #1인게임개발
- SQL
- Private Blockchain
- 불안정 정렬
- Factory Functions
- 텍스트 가운데 정렬
- 2티어 아키텍처
- solidity
- 블록체인
- Hybrid Blockchain
- 안정 정렬
- javascript
- skip ci
- Factory 함수
- #유니티
- Relational Database
- UTXO
- http 모듈
Archives
- Today
- Total
짹뚜 스튜디오
[Primitive Data Types] #2. Wrapper Object (래퍼 객체) 본문
해당 글은 모든 자바스크립트 개발자가 알아야 하는 33가지 개념에서 두 번째인 Primitive Data Types 항목을 공부하면서 간단하게 작성한 글이다.
let str = "hello";
console.log(str.length); // 5
위에 코드에서 str은 string 타입으로 생성이 되어있고 Primitive Data Type이기 때문에 메서드나 프로퍼티를 가질 수 없다. 그러나 다음 줄을 보면 객체처럼 메서드를 호출했는데도 오류가 발생하지 않은 것을 확인할 수가 있는데, 이것이 가능한 이유는 Wrapper Object 때문이다.
Wrapper Object(래퍼 객체)
래퍼 객체란 말 그대로 Primitive Data Type을 감싸는 객체를 얘기한다. Primitive Data Type 중에 래퍼 객체가 존재하는 것은 number, string, boolean, symbol이 있다. 그래서 해당 타입들은 메서드나 프로퍼티에 접근을 할 때 내부적으로 new 키워드를 사용해서 해당 타입의 객체가 임시로 만들어진다. (위의 코드를 예를 들어서 str.length가 실행되면 new String(str).length 가 실행된 것처럼 된다.)
이렇게 Primitive Data Type이 자동으로 래퍼 객체로 변환하는 것을 Auto-boxing이라고도 한다.
래퍼 객체는 메서드나 프로퍼티에 접근을 할 때만 임시적으로 생성이 되고 그 뒤에 바로 삭제된다.
let str = "hello";
str.id = 1; // 에러가 발생하지는 않음
console.log(str.id); // undefined;
'개발 공부 > javascript' 카테고리의 다른 글
Value Types and Reference Types (0) | 2021.12.17 |
---|---|
[Primitive Data Types] #3. 0.1 + 0.2 != 0.3 ?! (0) | 2021.12.16 |
[Primitive Data Types] #1. 무엇인가? (0) | 2021.12.15 |
브라우저에서 자바스크립트의 동작 원리: Call Stack (0) | 2021.12.14 |
Nullish Coalescing Operator (널 병합 연산자) (0) | 2021.12.03 |
Comments