데이터 타입(자료형)
변수에는 여러가지 유형이 들어갈 수 있습니다. 프로그램 언어에 있어 가장 기본적인 요소이며, 데이터 타입이라고 합니다. 데이터 타입에는 숫자, 문자열, 논리값, 특수값, 심벌, 객체, 배열, 함수 등을 표현할 수 있습니다.
숫자(Number)
숫자형(Number) 데이터는 단어 의미 그대로 숫자를 의미합니다. 만약 "100"과 같이 큰따옴표가 숫자를 감싸고 있다면 숫자가 아닌 문자형 데이터입니다. 이 경우에는 Number("100")를 이용하면 문자형 데이터를 숫자형 데이터로 바꿀 수 있습니다.
기본형 : var 변수 = 숫자; 또는 Number("문자형 숫자");
var s = 100;
var t = Number("500");
문자열(String)
문자형(String) 데이터는 다음과 같이 문자나 숫자를 큰따옴표(" ") 또는 작은따옴표(' ')로 감싸고 있습니다. 또한 문자형 데이터에 HTML 태그를 포함하여 출력하면 태그로 인식합니다.
기본형 : 변수 = "사용할 문자나 숫자";
var s = "javascript";
var num = "100";
var tag = "<h1>String</h1>";
논리값(Boolean)
논리형(Boolean) 데이터는 true(참) 또는 false(거짓)가 있습니다. 이 데이터는 주로 2개의 데이터를 비교할 때 나오는 결과입니다. 예를 들어 '100보다 10 크다'는 잘못된 비교이므로 false라는 결과를 반환하게 됩니다. 논리형 데이터의 기본형은 다음과 같습니다.
기본형 : var 변수 = true or false; 또는 Boolean(데이터);
var s = true;
var t = 10>=100; // false
var k = Boolean("hello"); // true
Boolean() 메서드에 데이터를 입력하면 논리형 데이터인 true 또는 false를 반환합니다. Boolean()메서드는 숫자 ()과 null, undefined, 빈 문자("")를 제외한 모든 데이터에 대해 true를 반환합니다. 다음과 같이 Boolean() 메서드에 숫자 0을 입력하면 false라는 값을 반환합니다. 그리고 Boolean()메서드에 "홍길동"을 입력하면 true를 반환합니다.
var m = Boolean(0); // false
var k = Boolean("홍길동"); // true
특수값(Null & Undefined)
undefined는 다음과 같이 변수 s에 값이 등록되기 전의 기본값이고, null은 변수에 저장된 값이 null인 경우를 가리킵니다. null은 변수에 저장된 데이터를 비우고자 할 때 사용하는 값입니다.
기본형 : var s;
var t = hello;
t = null;
심벌(Symbol)
심볼형(Symbol)은 유일한 식별자를 만들고 싶을 때 사용합니다. 즉, 객체의 속성키를 Symbol 값으로 해서 해당 속성을 고유하게 관리하고자 할 때 사용합니다.
// 심볼 key는 이름의 충돌 위험이 없는 유일한 객체의 프로퍼티 키
var key = Symbol('key');
console.log(typeof key); // symbol
var obj = {};
obj[key] = 'value';
console.log(obj[key]); // value
객체(Object)
객체형(Object)은 여러 속성을 하나의 변수에 저장할 수 있도록 해주는 데이터 타입으로 중괄호{ }를 사용하여 "키:값" 으로 설정합니다.
var me = {
'name': 'young',
'birth': 1996,
'sex': 'm'
}
배열(Array)
자바스크립트의 배열은 숫자형이나 문자열과 마찬가지로 일반적인 스크립트 언어와 크게 다른 것이 없다. 배열은 []나 newArray()로 생성하며, 크기의 제약이 없고, 하나의 배열에 서로 다른 타입의 변수가 들어갈 수 있다.
var array = new Array(2,4,5,"a",'b');
함수(Function)
다른 객체처럼 속성 및 method를 가질 수 있기에 일급(first-class) 객체이며 인자를 가질 수 있는 코드 블록이다. 함수는 자체 범위를 가진다. JavaScript에서 함수는 프로그램의 매우 중요한 특징이며, 특히 부모 함수의 지역 변수에 접근할 수 있다(이를 closure라고 한다).
function name (parameter1, parameter2,...) {
// 함수식
}