자바스크립트는 7개의 데이터 타입(값의 종류)을 가지며, 원시 타입
과 객체 타입
으로 구분된다.
원시 타입: 변경이 불가능한 값
객체 타입: 변경 가능한 값
1️⃣ 숫자
실수
Infinity
: 양의 무한대-Infinity
: 음의 무한대NaN
: Not-a-Number, 산술 연산 불가2️⃣ 문자열
자바스크립트에서 문자열 연결은 '+'를 사용해 연결할 수 있다.
하지만 표현식 삽입(expression interpolation) 을 통해 더욱 깔끔하고 쉽게 문자열을 삽입할 수 있다.
var first = "Lee";
var last = "Soyeon";
// ES5: 문자열 연결
console.log("My name is " + first + " " + last + "."); // My name is Lee Soyeon.
// ES6: 표현식 삽입
console.log(`My name is ${first} ${last}.`); // My name is Lee Soyeon.
3️⃣ 불리언
4️⃣ undefined
null
을 할당해라.5️⃣ null
6️⃣ 심벌
7️⃣ 객체
메모리에 값을 저장하려면, 얼마만큼의 메모리 공간이 필요한지 알아야 한다. 자바스크립트 엔진은 값의 종류에 따라 고정된 크기의 메모리 공간을 확보한다.
즉, 데이터 타입에 따라 메모리 공간의 크기가 결정된다.
값을 참조하려면, 값이 저장된 메모리 공간의 주소를 알아야 한다.
그럼, 컴퓨터는 읽어야 할 메모리 공간의 크기를 어떻게 알까? 바로 데이터 타입을 이용해 값을 해석하기 때문이다.
데이터 타입이 필요한 이유는,
정적 타입 언어 vs 동적 타입 언어
정적 타입 언어는 변수를 선언할 때, 데이터 타입을 먼저 지정해야 한다.
컴파일 시점에 타입을 체크하며, 타입의 일관성을 강제하여 런타임 에러를 줄인다.
자바스크립트는 변수를 선언할 때 타입을 지정하지 않으며 할당된 값에 따라 타입이 자동으로 결정된다.
이후 재할당을 통해 타입이 변경될 수 있다.
이러한 특징을 동적 타이핑이라고 하며, 자바스트립트는 동적 타입 언어이다.
동적 타입 언어의 장단점
변수를 사용할 때 주의할 점은 다음과 같다.
1. 필요한 경우에만 사용하기
2. 변수의 스코프를 최대한 좁게 만들기
3. 전역 변수는 사용하지 않기
4. 변수보다는 상수 사용하기
5. 변수명을 의미 있게 정하기