반응형
데이터 타입
- 데이터 타입이란 데이터의 형태를 의미한다. 데이터 타입은 크게 두가지로 구분할 수 있다. 객체와 객체가 아닌 것.
- 객체가 아닌 데이터 타입을 원시 데이터 타입(primitive type)이라고 한다. 그 외의 모든 데이터 타입들은 객체다.
- 숫자
- 문자열
- 불리언(true/false)
- null
- undefined
레퍼 객체
문자열과 원시 테이터 타입
var str = 'jin seok';
console.log(str.length);
console.log(str.charAt(0));
- 문자열은 분명히 프로퍼티와 메소드가 있다. 그렇다면 객체다. 그런데 왜 문자열이 객체가 아니라고 하는 이유는 내부적으로 문자열이 원시 데이터 타입이고 문자열과 관련된 어떤 작업을 하려고 할 때 자바스크립트는 임시로 문자열 객체를 만들고 사용이 끝나면 제거하기 때문이다.
- 이러한 처리는 내부적으로 일어난다. 그렇기 때문에 몰라도 된다. 하지만 원시 데이터 타입과 객체는 좀 다른 동작 방법을 가지고 있기 때문에 이들을 분별하는 것은 결국엔 필요하다.
증명
var str = 'jin seok';
str.prop = 'everybody';
console.log(str.prop);
str.prop를 하는 순간에 자바스크립트 내부적으로 String 객체가 만들어진다. prop 프로퍼티는 이 객체에 저장되고 이 객체는 곧 제거 된다. 그렇기 때문에 prop라는 속성이 저장된 객체는 존재하지 않게된다는 것을 위의 결과에서 확인 할 수 있다.
하지만 문자열과 관련해서 필요한 기능성을 객체지향적으로 제공해야 하는 필요 또한 있기 때문에 원시 데이터 형을 객체처럼 다룰 수 있도록 하기 위한 객체를 자바스크립트는 제공하고 있는데 그것이 레퍼객체(wrapper object)다.
레퍼객체로는 String, Number, Boolean이 있다. null과 undefined는 레퍼 객체가 존재하지 않는다.
반응형
'프로그래밍 개발 > JS 기본 언어' 카테고리의 다른 글
Javascript 참조 (0) | 2020.11.16 |
---|---|
Javascript Object (0) | 2020.11.16 |
Javascript 표준 내장 객체의 확장 (0) | 2020.11.16 |
Javascript 상속(inheritance)과 프로토타입(prototype) (0) | 2020.11.13 |
Javascript this (0) | 2020.11.13 |
댓글