Programming/JavaScript

데이터 타입

잇나우 2019. 12. 23. 21:10
반응형

데이터 타입은 크게 두가지로 나뉠 수 있다.

  • 원시 데이터 타입 primitive type (기본 데이터 타입)
  • 객체 데이터 타입 (참조 데이터 타입)

 

원시 데이터 타입에는

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

가 있고 이것 이외에 나머지가 객체 데이터 타입이다.

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

분명 객체처럼 사용되고 있는데 왜 문자열이 객체가 아니라고 할까? 그이유는 문자열과 관련된 어떤 작업을 하려고 할 떄 자바스크립트는 임시로 문자열을 객체로 만들고 사용이 끝나면 제거하기 때문이다. 이러한 처리는 내부적으로 자동적으로 일어난다. str = new String('conding'); 와 같은 작업이 1행과 2행 사이에 생겨났다고 생각하면 편하다.

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

str.prop을 하는 순간 자바스크립트 내부적으로 String 객체가 만들어진다. prop 프로퍼티는 이 객체에 저장되고 이 객체는 곧 제거 된다. 그렇기 때문에 prop이라는 속성이 저장된 객체는 존재하지 않게 된다. 정의하는 순간만 존재하는 것이다. 원시 데이터 타입을 마치 객체처럼 사용하려 할때 내부적으로 자동으로 만들어지는 객체를 레퍼객체(wrapper object)라고 한다.

반응형

'Programming > JavaScript' 카테고리의 다른 글

복제와 참조  (0) 2019.12.24
Object  (0) 2019.12.23
표준 내장 객체의 확장  (0) 2019.12.23
Prototype  (0) 2019.12.22
상속(inheritance)  (0) 2019.12.21