[JavaScript] 데이터 타입 종류와 특성

자바스크립트 데이터 타입
자바스크립트 데이터 타입은 크게 기본타입과 참조타입을 나뉠수 있다. 


자바스크립트 기본타입
자바스크립트의 값들은 크게 기본 타입(Primitive Type)과 참조 타입(Reference Type)으로 나뉜다. 
기본 데이터 타입은 값을 그대로 할당하고 참조 타입은 값이 저장된 주소값을 할당한다.
  • 기본데이터 타입(숫자, 문자열, 불린값, null, undefined)
  • 참조 데이터 타입(객체, 배열)

해당 변수의 타입을 자바스크립트의 typeof 연산자를 이용해 출력한다. typeof 연산자는 피연산자의 타입을 리턴한다.

자바스크립트는 느슨한 타입 체크 언어다. 자바 스크립트는 변수를 선언할 때 타입을 미리 정하지 않고, var라는 한 하지 키워드로만 변수를 선언한다. 따라서 자바스크립트는 변수에 어떤 형태의 데이터를 저장하느냐에 따라 해당 변수의 타입이 결정된다.

데이터 타입을 출력할 때 null타입은 object타입으로 나온다., function() {} 은 특수한 타입이므로 function으로 나온다.

1
2
3
console.log(typeof (null));  //object
console.log(typeof ({}));    //object
console.log(typeof (function() {}));  //function
cs


숫자
자바스크립트는 하나의 숫자형만 존재한다. 자바스크립트에서는 모든 숫자를 64비트 부동 소수점 형태로 저장하기 때문이다. 자바스크립트에서 5/2 할 경우 2.5가 결과값으로 나온다. 모두 실수로 취급되기 때문이다.

1
2
3
4
var num = / 2;
 
console.log(num);
console.log(Math.floor(num));
cs

소수 부분을 버린 정수 부분만을 구하고 싶다면 Math.floor() 자바스크립트 메서드를 사용하면 된다.


문자열
문자열은 작은 따옴표(' ')나 큰 따옴표(" ")로 생성한다. 변수의 타입은 String으로 나온다.  주의할 점은 문자열은 변하지 않는다는 것이다. 

1
2
3
4
5
6
var str = 'test';
console.log(str[0], str[1], str[2], str[3]); //출력값 test
 
// 문자열의 첫 글자를 대문자로 변경?
str[0= 'T';
console.log(str); // 출력값 test
cs

문자열은 문자 배열처럼 인덱스를 이용해서 접근할 수 있다. str[0]에 'T'를 넣었어도 에러는 발생하지 않지만 문자열이 변경되지 않는다. 왜냐하면 자바스크립트에서는 한 번 생성된 문자열은 읽기만 가능하지 수정은 불가능하다.


불린값
자바스크립트는 true와 false값을 나타내는 불린 타입을 가진다. 


null값과 undefined
이 두 타입은 모두 자바스크립트에서 값이 비어있음을 나타낸다. undefiined 타입의 변수는 변수 자체의 값 또한 undefined이다. 이처럼 자바스크립트에서 undefined는 타입이자, 값을 나타낸다. 

null 타입 변수인 nullVar의 typeof 결과가 null이 아니라 object이다. null타입 변수인지를 확인할 떄 typeof 연산자를 사용하면 안되고, 일치 연산자(===)를 사용해서 변수의 값을 직접 사용한다.

1
2
3
4
5
// null 타입 변수 생성
var nullVar = null;
 
console.log(typeof nullVar === null); // 출력값 false
console.log(nullVar === null); // 출력값 true
cs


자바스크립트 참조 타입(객체 타입)
자바스크립트에서 숫자, 문자열, 불린값, null, undefined 같은 기본 타입을 제외한 모든 값은 객체다. 따라서 배열, 함수, 정규표현식 등도 모두 결국 자바스크립트 객체로 표현된다. 

자바스크립트에서 객체는 단순히 '이름(key) : 값(value)' 형태의 프로퍼티들을 저장하는 컨테이너로서, 컴퓨터 과학 분야에서 해시라는 자료구조와 상당히 유사하다. 자바스크립트에서 기본타입은 하나의 값만을 가지는 데 비해, 참조 타입인 객체는 여러 개의 프로퍼티들을 포함할 수 있다. 이러나 객체의 프로퍼티는 기본 타입의 값을 포함하거나, 다른 객체를 가리킬 수도 있다. 이러한 프로퍼티의 성질에 따라 객체의 프로퍼티는 함수로 포함할 수 있으며, 자바스크립트에서는 이러한 프로퍼티를 메서드라고 부른다.



송형주, 고현준, 인사이드 자바스크립트, 한빛미디어(2014)


댓글

Designed by JB FACTORY