본문 바로가기
프로그래밍 개발/JS 기본 언어

Javascript 데이터 타입

by Jinseok Kim 2020. 11. 16.
반응형

 

 

데이터 타입

 

 

 

  • 데이터 타입이란 데이터의 형태를 의미한다. 데이터 타입은 크게 두가지로 구분할 수 있다. 객체객체가 아닌 것.
  • 객체가 아닌 데이터 타입을 원시 데이터 타입(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

댓글