데이터 타입(줄여서 '타입')은 값의 종류를 말합니다. 자바스크립트의 모든 값은 데이터 타입을 갖습니다. 자바스크립트(ES6)는 7개의 데이터 타입을 제공합니다. 7개의 데이터 타입은 원시타입과 객체 타입으로 분류합니다.
| 구분 | 데이터 타입 | 설명 |
|---|---|---|
| 원시타입 | 숫자 Number | 숫자, 정수와 실수 구분 없이 하나의 숫자 타입만 존재 |
| 원시타입 | 문자열 string | 문자열 |
| 원시타입 | 불리언 boolean | 논리적 참(true)과 거짓(false) |
| 원시타입 | undefined | var 키워드로 선언된 변수에 암묵적으로 할당되는 값 |
| 원시타입 | null | 값이 없다는 것을 의도적으로 명시할 때 사용하는 값 |
| 원시타입 | 심벌 symbol | ES6에서 추가된 7번째 타입 |
| 객체타입 | 객체, 함수, 배열 등 |
var integer = 1; // 정수
var double = 1.1; // 실수
var negative = -20; // 음의 정수
문자열 타입은 텍스트 데이터를 나타내는 데 사용합니다. 문자열은 작은따옴표(''), 큰따옴표("") 또는 백틱(``)으로 텍스트를 감싸줍니다.
var string;
string = '안녕하세요';
string = "안녕하세요";
string = `안녕하세요`;
string = '작은따옴표로 감싼 문자열 내의 "큰따옴표"는 문자열로 인식됩니다';
string = "반대로 큰따옴표로 감싼 문자열 내의 '작은따옴표'도 문자열로 인식됩니다";
ES6부터 템플릿 리터럴이라고 하는 새로운 문자열 표기법이 도입되었습니다. 템플릿 리터럴은 백틱(``)을 사용합니다. 템플릿 리터럴 내에서는 표현식 삽입을 통해 간단히 문자열을 삽입할 수 있습니다. 표현식을 삽입하려면 ${ }으로 표현식을 감싸줘야 합니다.
var firstName = 'Ju';
var lastName = 'MinJae';
console.log(`제 이름은 ${firstName} ${lastName}입니다.`); // 제 이름은 Ju MinJae입니다.
불리언 타입의 값은 논리적 참, 거짓을 나타내는 true와 false가 있습니다.
var foo = true;
console.log(foo); // true
foo = false;
console.log(foo) // false
var 키워드로 선언한 변수는 암묵적으로 undefined로 초기화됩니다. 즉, 변수를 선언한 이후 값을 할당하지 않은 변수를 참조하면 undefined가 반환됩니다. undefined 타입의 값은 undefined가 유일합니다.
var foo;
console.log(foo); // undefined
null 타입의 값은 null이 유일합니다. 변수에 null을 할당하는 것은 변수가 이전에 참조하던 값을 더 이상 참조하지 않겠다는 의미입니다.
var foo = 'Hello';
foo = null;
심벌은 변경 불가능한 원시 타입의 값입니다. 심벌 값은 다른 값과 중복되지 않는 값입니다. 따라서 주로 이름이 충돌할 위험이 없는 객체의 유일한 프로퍼티 키를 만들기 위해 사용합니다.
var key = Symbol('key');
console.log(typeof key); // symbol
위에서 살펴본 6가지 데이터 타입 이외의 값은 모두 객체 타입입니다. 자바스크립트는 거의 모든 것이 객체로 이루어집니다.
✅ 참고