데이터 타입이란 변수에 들어가는 데이터의 유형을 의미합니다. 게임을 예로 들면 스타크래프트에서는 테란, 저그, 프로토스 3가지 종족이 있습니다. 각 종족별로 강점과 약점이 존재하고 사용할 수 있는 스킬 또한 다릅니다. 데이터 타입도 마찬가지입니다. 각각의 데이터 타입별로 서로 다른 스킬과 능력치를 가지고 있습니다.
인벤 : 스타크래프트2 종족 소개
자바스크립트는 Number (수), String (문자열), Boolean (불리언), Null, Undefined, Object (객체) 총 6개의 데이터 타입을 가지고 있습니다. Object 안에는 Array (배열), Function (함수), Date (날짜), RegExp (정규식) 이 포함되어 있습니다.
이번 장에서는 자바스크립트 데이터 타입에 대해서 간략하게 살펴보겠습니다. typeof 연산자를 사용하면 변수 안에 어떤 데이터 타입이 들어가 있는지 확인할 수 있습니다.
1. Number (수)
자바스크립트에서 Number 는 숫자를 표현하거나 산술 연산을 하는데 사용되는 데이터 타입입니다. 여기서 숫자란 부동소수점 수를 의미합니다. 소수점이 없거나 소수점 이하 수가 없는 경우에는 10진 정수로 취급되며, 범위는 -2^53 ~ 2^53 사이 값을 취합니다.
var num1 = 10;
var num2 = 10.09;
2. String (문자열)
String은 문자열 표현하는데 사용되는 데이터 타입입니다. String 은 "" (큰따옴표) 또는 '' (작은 따옴표) 사이에 값을 넣는 형태로 표현할 수 있습니다.
var str = "Hello World";
var strNum = "10";
3. Boolean
불리언은 true 또는 false 같이 참과 거짓을 의미하는 논리 데이터 타입입니다.
var boolTrue = true;
var boolFalse = false;
4. Null과 Undefined
자바스크립트는 데이터가 없음을 나타내는 null 과 데이터가 할당되지 않았음을 나타내는 undefined 라는 데이터 타입이 존재합니다. null 은 개발자가 의도적으로 비어있는 값을 부연한 것이고, undefined 는 어떠한 값도 할당되지 않은 상태를 의미합니다.
var emptyNull = null;
var emptyUndefined;
위 코드에서 어색한 부분을 찾았나요? null 의 경우에는 typeof 의 결과값이 object 가 출력되는 것을 확인할 수 있습니다. MDN ( Mozilla Developer Network ) 에서는 이러한 현상을 자바스크립트 버그라고 설명하고 있습니다.
출처 : MDN null Reference
5. Obejct (객체)
자바스크립트에서 Object는 조금 설명이 복잡한 부분이 있습니다. 일단 지금 단계에서는 Object(객체), Array (배열), Function (함수) 부분만 간단하게만 살펴보겠습니다.
1) Object (객체)
Object 는 이름이 붙은 값들의 집합이라고 볼 수 있습니다. Object 는 {} ( 중괄호) 를 사용하여 만들 수 있으며, 어떠한 데이터 타입도 삽입할 수 있습니다. Object 는 property 와 value 로 구성되어 있으며, 순서에 영향을 받지 않습니다.
var person = { name : "inkweon", age : 20 };
위 코드에서 property 는 name과 age, value 는 inkweon과 20 입니다. Object 의 value 에 접근하고 싶다면 다음과 같이 코드를 작성하면 됩니다.
person.name // 또는 person["name"] 으로 접근
person.age // 또는 person["age"] 으로 접근
2) Array (배열)
Object 와 마찬가지로 하나 이상의 값을 저장하고자 할 때 사용하는 것이 바로 Array 입니다. Array 은 [] (대괄호) 를 사용하여 만들 수 있습니다. [] 안에는 어떠한 데이터 타입도 삽입이 가능합니다. Array 는 index 와 value 로 구성되어 있으며 index 는 value 가 위치한 좌표값입니다.
var fruit = ["apple", "banana", "orange"];
Array 데이터 타입은 지금단계에서 설명하기 복잡한 부분이 있습니다. 여기에서는 object 로 출력되기는 했지만 Array 데이터 타입으로 기억하고 일단은 넘어가겠습니다.
위 코드에서 value 는 apple, banana, orange 이며 index 는 0, 1, 2 입니다. 여기서 index 는 value 가 위치한 좌표이며 좌표는 항상 0으로 시작합니다. 그렇기 때문에 fruit Array 에 있는 value 에 접근하기 위해서는 다음과 같이 코드를 작성해야 합니다.
fruit[0] // apple 출력
fruit[1] // banana 출력
fruit[2] // orange 출력
3) Function (함수)
Function 은 어떠한 기능을 만들고자 할 때 사용되는 자바스크립트의 객체 중 하나입니다. 한번 만들면 여러번 재사용이 가능하며 자바스크립트에서 자주 사용하는 객체 중 하나입니다. 일단 입력된 2개 값의 합을 구할 수 있는 기능이 담긴 sum 함수를 만들어 보았습니다.
function sum(num1, num2) {
return num1 + num2;
}
데이터 타입은 자바스크립트 뿐만 아니라 다른 언어에도 존재하는 주요 개념입니다. 변수가 어떤 데이터 타입을 갖고 있는지에 따라서 사용할 수 있는 스킬과 능력이 달라지기 때문에 꼭 숙지해 두시기 바랍니다. 다음 시간에는 Number 데이터 타입이 갖고 있는 스킬과 능력치를 살펴보겠습니다.
Date (날짜), RegExp (정규식) 은 다른 데이터 타입에 비해 상대적으로 중요도가 낮아 이번 장에서 설명은 스킵하도록 하겠습니다.