[JavaScript] 자료형(원시 타입)

자료형이란?

자료형은 데이터 값의 유형이다.

원시타입과 객체(참조)타입으로 나눌 수 있다.

원시타입

  • 문자열(String)
  • 숫자(Number)
  • 논리형(Boolean)
  • 언디파인드(Undefined)
  • 널(Null)

객체(참조)타입

  • 객체(Object)
  • 배열(Array)
  • 함수(Function)

여기서 객체(참조)타입과 객체(Object)의 차이에 대해 혼동하기 쉽다. 객체(참조)타입은 기본타입을 제외한 모든 자바스크립트의 객체를 가르키며, 객체(Object), 배열(Array), 함수(Function)도 객체(참조)타입 에 포함된다. 객체(Object)는 자바스크립트에서 표현되는 자료형의 값이며 객체(참조)타입중에 하나인 객체(Object)이다.

원시타입

문자(string)

우리가 실생활에서 쓰고 있는 글자를 문자열이라고 생각하면 된다. 변수에 담는 방식은 큰따옴표나 작은 따옴표로 감싸서 저장하시면 된다. 문자열에 따옴표를 포함하고 싶으면 다른 따옴표로 감싸주면 된다.

var str = 'data'; // 문자열을 담을 때
var str = "'data'"; // 작은 따옴표를 문자열에 추가하고 싶을때

참고로 따옴표를 문자열로 인식하고 싶을때는 역슬래쉬를 따옴표 앞에 붙여 사용하면 된다. 이 작업을 이스케이핑이라고 부른다.

var str = "'data'"; // 작은 따옴표를 문자열로 인식하고 싶을때

숫자(number)

우리가 알고있는 숫자라고 생각하면 된다. 자바스크립트는 모든 숫자를 64비트 부동소숫점 형태로 저장하기 때문에 하나의 타입만 존재하며 형태는 크게 정수형(10진수, 16진수), 실수형으로 나뉜다.

  • 정수형(10진수) : 평상시에 사용하는 10진수이며, 소숫점이 없다.
  • 정수형(16진수) : Ox로 시작하며 숫자 0~9와 문자 A~F를 사용해서 숫자를 표현한다. 보통 색상을 나타낼때 사용한다.(예 : 0xF00)
  • 실수형 : 소숫점을 갖는 숫자

자바스크립트는 소숫점을 계산할때 한가지 오류가 있는데 확인하고 넘어가자.
하단의 코드를 보면

console.log(0.1 + 0.2);

결과는 0.3 이 나올겉 같지만 0.30000000000000004 가 출력이 된다. 이것이 부동소수점 오류며 아래와 같은 방법으로 해결을 할 수 있다. 주의하도록 하자.

console.log(((0.1 * 10) + (0.2 * 10)) / 10);

논리형(boolean)

쉽게 설명해서 참, 거짓이라고 생각하면 된다.

  • 참 : true
  • 거짓 : false

데이터 타입마다 true, false로 변환되는 값이 다르다.

데이터 타입 true로 변환되는 값 false로 변환되는 값
불리언 true flase
문자열 비어 있지 않은 모든 문자열 “”(빈 문자열)
숫자 0이 아닌 모든 숫자(무한대 포함) 0, NaN
객체 모든 객체 null
Undefined 해당 없음 undefined

언디파인드(undefined)

언디파인드는 아무 값도 없는 상태이다.

var val; // undefined

널(null)

널은 아무것도 참조하고 있지 않다라는 의미이다. 여기서 언디파인드와 널이 조금 헷갈리는데, 언디파인드는 값 자체가 선언이 되지 않은거고 널은 임의로 빈 값으로 선언한 상태라고 보면 된다. 널은 객체를 담을 변수를 초기화할때 많이 사용한다.

각 자료형의 초기화

var num = 0; // 숫자 초기화
var str = ''; // 문자 초기화
var boolean = false; // 논리형 초기화
var obj = null; // 객체 초기화
updated_at 03-05-2017