power-girl0-0

[객체지향] 데이터 타입 본문

언어/Javascript

[객체지향] 데이터 타입

power-girl0-0 2021. 2. 5. 23:04
728x90

 

 

생활코딩 javascript를 참고하여 공부하였습니다.

스스로 공부한 것을 정리하고 복습하기 위한 목적으로 작성하였습니다.

( 출처 :  https://opentutorials.org/course/743)


 데이터 타입 

데이터 타입이란 데이터의 형태를 의미한다.

 

데이터 타입은 크게 두가지로 구분할 수 있다.

원시(기본) 데이터 타입(primitive type)과  객체(참조) 데이터 타입으로 나눌 수 있다.


원시(기본) 데이터 타입은 아래와 같다. 

  • 숫자

  • 문자열

  • 불리언(true/false)

  • null

  • undefined

원시 데이터 타입은 객체가 아닌 데이터 타입이라고도 한다.

그 외의 모든 데이터 타입들은 객체(참조) 데이터 타입이다.


 레퍼객체 ( wrapper object ) 

예제를 통해 알아보자.

var str = 'coding';
console.log(str.length);        // 6
console.log(str.charAt(0));     // "C"

내부적으로 문자열이 원시 데이터 타입이고 문자열과 관련된 어떤 작업을 하려고 할 때 자바스크립트는 임시로 문자열 객체를 만들고 사용이 끝나면 제거하기 때문에 문자열은 객체가 아니다.

이러한 처리는 내부적으로 일어난다. 


var str = 'coding';
str.prop = 'everybody';
console.log(str.prop);      // undefined

위 소스코드에서 str.prop를 하는 순간에 자바스크립트는 내부적으로 String 객체가 만들어진다.

prop 프로퍼티는 이 객체에 저장되고 이 객체는 곧 제거 된다.

 

그렇기 때문에 prop라는 속성이 저장된 객체는 존재하지 않게된다.

이러한 특징은 일반적인 객체의 동작 방법과는 다르다.

 

하지만 문자열과 관련해서 필요한 기능성을 객체지향적으로 제공해야 하는 필요 또한 있기 때문에 원시 데이터 형을 객체처럼 다룰 수 있도록 하기 위한 객체를 자바스크립트는 제공하고 있는데 그것이 레퍼객체(wrapper object)다.

레퍼객체로는 StringNumber, Boolean이 있다. null과 undefined는 레퍼 객체가 존재하지 않는다.

 

 

 

728x90

'언어 > Javascript' 카테고리의 다른 글

HTML에서 JavaScript 로드하기  (0) 2021.02.06
[객체지향] 참조  (0) 2021.02.06
[객체지향] Object  (0) 2021.02.05
[객체지향] 표준 내장 객체의 확장  (0) 2021.02.05
[객체지향] prototype  (0) 2021.02.05
Comments