[Javascript] 객체지향 : 데이터 타입

SJ·2022년 7월 19일
0

Javascript

목록 보기
12/13

데이터 타입(Data type)

자바스크립트의 데이터 타입은 원시(기본) 데이터 타입과 객체(참조) 데이터 타입으로 나뉘어지며, 원시 데이터 타입이 아닌 모든 것은 객체 데이터 타입이다.

원시 데이터 타입 (Primitive type)

  • 숫자
  • 문자열
  • 불리언(true/false)
  • null
  • undefined

래퍼 객체(Wrapper Object)

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

문자열은 객체가 아니지만 프로퍼티와 메소드가 있다. 그 이유는 이런 식으로 문자열과 관련된 어떤 작업을 하려고 할 때 자바스크립트는 임시로 String이라는 감싸는 객체(래퍼 객체)를 만들어 원시 데이터 타입의 문자열을 감싸서 행동을 처리하고 사용이 끝나면 제거하기 때문이다. 원시 데이터는 객체가 아니기 때문에 객체처럼 사용할 수 없지만, 이러한 래퍼 객체는 원시 데이터를 객체처럼 사용할 수 있게 해준다. 자바스크립트는 이러한 작업을 자동으로 처리해주지만 어떤 언어들은 그렇지 않기 때문에 개발자가 명시적으로 래퍼 객체를 만들어 사용해야 하는 언어도 있다.

var str = 'coding';
str.prop = 'everybody';   // 이 순간에는 String이라는 'coding' 문자열을 감싸는 객체가 존재한다.
console.log(str.prop);    // undefined -> Type Error가 아닌 undefined를 발생시킨다.

-> str.prop를 하는 순간에 자바스크립트 내부적으로 String 객체가 만들어진다. prop 프로퍼티는 이 객체에 저장되고 이 객체는 곧 제거 된다. 그렇기 때문에 prop라는 속성이 저장된 객체는 존재하지 않으므로 str.prop를 실행했을 때 undefined가 발생한다.

래퍼 객체의 종류

  • 숫자 -> Number
  • 문자열 -> String
  • 불리언(true/false) -> Boolean
  • null -> 없음
  • undefined -> 없음

null과 undefined는 래퍼 객체가 존재하지 않기 때문에 null.prop = 'bob'; 이라고 입력하면 타입 에러가 발생한다.


출처 : 생활코딩 - Javascript

0개의 댓글