변수에 저장할 수 있는 자료형

변수에는 여러가지 유형이 들어갈 수 있습니다. 프로그램 언어에 있어 가장 기본적인 데이터 타입이라고 합니다. 데이터 타입에는 숫자, 문자열, 논리값, 특수값, 심벌, 객체, 배열, 함수 등을 표현할 수 있습니다.


숫자(Number)

숫자형(Number) 데이터는 단어 의미 그대로 숫자를 의미합니다. 만약 "100"과 같이 큰따옴표가 숫자를 감싸고 있다면 숫자가 아닌 문자형 데이터입니다. 이 경우에는 Number("100")를 이용하면 문자형 데이터를 숫자형 데이터로 바꿀 수 있습니다.

{
    var 변수 = "사용할 문자나 숫자";

    var s = "javascript";
    var num = "100";
    var tag = "String";
}

문자열(String)

자바스크립트의 String 타입은 텍스트 데이터를 나타내는데 사용합니다. 이는 16비트 부호없는 정수 값 요소들의 집합입니다. String의 각 요소는 String의 위치를 차지한다. 첫 번째 요소는 0번 인덱스에 있고, 다음 요소는 1번, 그 다음 요소는 2번... 같은 방식입니다. String 의 길이는 String이 가지고있는 요소의 갯수입니다. C 같은 언어와는 다르게, 자바스크립트의 문자열은 변경 불가능(immutable)합니다. 이것은 한 번 문자열이 생성되면, 그 문자열을 수정할 수 없다는걸 의미합니다.

{
    var 변수 = "사용할 문자나 숫자";

    var num = "100";

    var tag = "string";
}

논리값(Boolean)

Boolean 은 논리적인 요소를 나타내고, true 와 false 의 두 가지 값을 가질 수 있다. 첫 번재 매개변수로서 전달한 값은 필요한 경우 불리언 값으로 변환됩니다. 값이 없거나 0, -0, null, false, NaN, undefined, 빈 문자열 ("")이라면 객체의 초기값은 false가 됩니다. 문자열 "false"를 포함한 그 외 모든 다른 값은 초기값을 true로 설정합니다.

{
    var 변수 = true or false; 또는 Boolean(데이터);

    var s = true;
    var t = 10>=100;           //false
    var k = Boolean("hello"); //true
}

특수값(Null)

Null 타입은 딱 한 가지 값, null 을 가질 수 있습니다. null 값은 일반적으로 존재하지 않거나 유효하지 않은 object 또는 주소를 의도적으로 가리키는 참조를 나타냅니다. null 참조의 의미는 언어의 구현에 따라 다양합니다. null은 동작이 원시적으로 보이기 때문에 primitive values 중 하나로 표시됩니다. 그러나 특정 경우에, null 은 처음 봤던 것만큼 "원시적"이지 않습니다. 모든 객체는 null 값으로 부터 파생되며 따라서 typeof 연산자는 아래의 코드에서 object를 반환합니다.


특수값(Undefined)

값을 할당하지 않은 변수는 undefined 값을 가집니다. undefined는 원시값으로, 선언한 후 값을 할당하지 않은 변수 혹은 값이 주어지지 않은 인수에 자동으로 할당됩니다.


심벌(Symbol)

Symbol은 유일하고 변경 불가능한 (immutable) 기본값 (primitive value) 입니다. 또한, 객체 속성의 key 값으로도 사용될 수 있습니다. 몇몇 프로그래밍 언어에서는 Symbol을 atom 이라고 부릅니다. 또, C 언어의 이름있는 열거형 (enum) 과도 비슷합니다.


객체(object)

키(key)과 값(value)으로 구성된 프로퍼티(Property)들의 집합입니다. 프로퍼티의 값으로 자바스크립트에서 사용할 수 있는 모든 값을 사용할 수 있습니다. 자바스크립트의 함수는 일급 객체이므로 값으로 취급할 수 있습니다. 따라서 프로퍼티 값으로 함수를 사용할 수도 있으며 프로퍼티 값이 함수일 경우, 일반 함수와 구분하기 위해 메소드라 부릅니다.


배열(Array)

배열(array)은 이름과 인덱스로 참조되는 정렬된 값의 집합으로 정의됩니다. 배열을 구성하는 각각의 값을 배열 요소(element)라고 하며, 배열에서의 위치를 가리키는 숫자를 인덱스(index)라고 합니다. 자바스크립트에서 배열의 특징은 다음과 같습니다.
1. 배열 요소의 타입이 고정되어 있지 않으므로, 같은 배열에 있는 배열 요소끼리의 타입이 서로 다를 수도 있습니다.
2. 배열 요소의 인덱스가 연속적이지 않아도 되며, 따라서 특정 배열 요소가 비어 있을 수도 있습니다.
3. 자바스크립트에서 배열은 Array 객체로 다뤄집니다.


함수(Function)

자바스크립트에서는 함수도 하나의 타입(datatype)입니다. 따라서 함수를 변수에 대입하거나, 함수에 프로퍼티를 지정하는 것도 가능합니다. 또한, 자바스크립트 함수는 다른 함수 내에 중첩되어 정의될 수도 있습니다. 자바스크립트에서 함수의 정의는 function 키워드로 시작되며, 다음과 같은 구성요소를 가집니다.
1. 함수의 이름
2. 괄호 안에 쉼표(,)로 구분되는 함수의 매개변수(parameter)
3. 중괄호({})로 둘러싸인 자바스크립트 실행문