📌
Javascript 생활코딩
  • 자바스크립트
  • 자바스크립트 기본
    • 숫자와 문자
    • 변수
    • 주석, 줄바꿈과 여백
    • 조건문 - 기본
    • 조건문 - 비교연산자
    • 조건문 - 논리연산자
    • 조건문 - boolean의 대체재
    • 반복문 - 기본 (while,for)
    • 반복문 - 제어(break, continue)
    • 반복문 - 중첩
    • 함수
    • 배열 - 기본
    • 배열 - 조작, 제거 및 정렬 메서드
    • 객체 - 기본
    • 객체 - 반복문
    • 모듈
    • UI와 API 그리고 문서보는 법
    • 정규표현식
  • 함수지향
    • 유효범위
    • 값으로서의 함수와 콜백
    • 클로저
    • arguments
    • 함수의 호출
  • 객체지향
    • 객체지향 프로그래밍
    • 생성자와 new
    • 전역객체
    • this
    • 상속
    • prototype
    • 표준 내장 객체의 확장
    • Object
    • 데이터 타입
    • 참조
  • 패턴
    • 재귀함수
Powered by GitBook
On this page
  • 원시 데이터 타입
  • 레퍼 객체

Was this helpful?

  1. 객체지향

데이터 타입

원시 데이터 타입

이제 데이터 타입에 대해서 조금 더 심도 있는 이야기를 할 수 있게 되었습니다. 데이터 타입이란 데이터의 형태를 의미합니다. 데이터 타입은 크게 두가지로 구분할 수 있습니다.

객체와 객체가 아닌 것.

객체가 아닌 것은 무엇일까?

  • 숫자

  • 문자열

  • 불리언(true/false)

  • null

  • undefined

객체가 아닌 데이터 타입을 원시 데이터 타입(primitive type)이라고 한다. 그 외의 모든 데이터 타입들은 객체다.

레퍼 객체

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

tr.prop를 하는 순간에 자바스크립트 내부적으로 String 객체가 만들어집니다. prop 프로퍼티는 이 객체에 저장되고 이 객체는 곧 제거 됩니다. 그렇기 때문에 prop라는 속성이 저장된 객체는 존재하지 않게됩니다. 이러한 특징은 일반적인 객체의 동작 방법과는 다릅니다.

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

PreviousObjectNext참조

Last updated 4 years ago

Was this helpful?

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

String
Number