여기서 정리하는 데이터 타입도 자바스크립트 뿐만 아니라 프로그래밍 전반적으로 큰 도움이 되는 내용이므로 잘 기억해두자. 먼저 자바스크립트는 7개의 데이터 타입을 제공한다. 데이터 타입은 원시 타입과 객체 타입으로 분류할 수 있다. 원시타입에서는 숫자타입, 문자열 타입, 불리언 타입, undefined 타입, null타입, 심벌타입 등이 있고 객체타입은 객체와 함수, 배열 등이 포함된 타입이다. 이제 하나씩 차근차근 살펴보자.
c++와 다르게 자바스크립트는 오직 하나의 데이터 타입만이 존재한다. c++에서는 정수, 실수 타입을 다르게 선언했지만 자바스크립트에서는 모든 수를 실수로 처리한다.
자바스크립트에서 문자열은 큰따옴표(""), 작은 따옴표(''), 백틱(``) 을 사용해 표현한다.
템플릿 리터럴은 문자열 표기법 중 하나이다. 하지만 템플릿 리터럴은 따옴표가 아닌 백틱을 사용해서 나타낸다.
var first = "JaeO";
var last = "Choi";
console.log('My name is' + first + ' ' + last + '.');
하지만 이것은 가독성이 좋지 않다. 이를 방지하기 위해 표현식을 삽입한다. ${} 표현식으로 감싸면 문자열로 타입이 강제 변환되어 삽입된다.
표현식 삽입은 반드시 템플릿 리터럴 내에서 사용해야 한다
var first = "JaeO";
var last = "Choi";
console.log(`My name is ${first} ${last}.`);
불리언 타입의 값은 논리적 참, 거짓을 나타내는 true, false 뿐이다.
undefined 타입의 값은 undefined가 유일하다.
변수에 값이 없다는 것을 명시하고 싶을 때에는 undefined이 아닌 null을 할당한다.
null 타입이 유일하다.
함수가 유효한 값을 반환할 수 없는 경우 명시적으로 null을 반환하기도 한다.
심벌은 변경 불가능한 원시 타입의 값이다. 심벌타입은 symbol 함수를 호출해 생성하며 값이 변하지 않는 유일무이한 값이다.
var key = Symbol('key');
console.log(typeof key) // symbol 반환
정적언어인 c나 자바와 달리 자바스크립트는 동적인 언어이다. 이것을 동적 타입 언어라고 한다.
변수는 타입을 갖지 않지만 값은 타입을 갖는다.
자바스크립트의 변수는 선언이 아닌 할당에 의해 타입이 결정된다.