구분 | 데이터 타입 | 설명 |
---|---|---|
기본형 | number | 숫자, 정수와 실수 구분 없이 하나의 숫자 타입만 존재 |
(Primitive type) | string | 문자열 |
boolean | 논리적 참(true)과 거짓(false) | |
undefined | var 키워드로 선언된 변수에 암묵적으로 할당되는 값 | |
null | 값이 없다는 것을 의도적으로 명시할 때 사용하는 값 | |
symbol | ES6에서 추가된 7번째 타입 | |
BigInt | ES11에서 추가된 8번째 타입 | |
참조형 | Object | Array |
(Reference type) | Function | |
Date | ||
RegExp | ||
ES6에서 추가된 하위 객체 | ||
(Map, WeakMap, Set, WeakSet 등) |
자바스크립트는 독특하게 하나의 숫자 타입만 존재한다.
ECMAScript 사양에 따르면 number 타입의 값은 배정밀도 64비트 부동소수점 형식을 따른다. → 모든 수를 실수로 처리한다.
정수, 실수, 2진수, 8진수, 16진수 리터럴은 모두 메모리에 배정밀도 64비트 부동소수점형식의 2진수로 저장되며 값을 참조하면 모두 10진수로 해석된다.
숫자 타입은 추가적으로 세 가지 특별한 값도 표현할 수 있다.
문자열은 0개 이상의 16비트 유니코드 문자(UTF-16)의 집합이다.
문자열은 작은따옴표(’ ‘), 큰따옴표(” “) 또는 백틱(
)으로 텍스트를 감싼다.
일반적으로 자바스크립트에서는 작은따옴표를 사용한다.
자바는 문자열을 객체로 표현한다.
자바스크립트의 문자열은 원시 타입이며, 변경 불가능한 값이다.
템플릿 리터럴은 멀티라인 문자열, 표현식 삽입, 태그트 템플릿 등 편리한 문자열 처리 기능을 제공한다.
템플릿 리터럴은 런타임에 일반 문자열로 변환되어 처리된다.
백틱(
)을 사용해 템플릿 리터럴을 표현한다.
일반 문자열 내에서는 줄바꿈(개행)이 허용되지 않기 때문에 줄바꿈 등의 공백을 표현하기 위해서는 백슬래시(\)로 시작하는 이스케이프 시퀀스를 사용해야 한다.
이스케이프 시퀀스 | 의미 |
---|---|
\0 | Null |
\b | Backspace |
\f | Form Feed - 프린터로 출력할 경우 다음 페이지의 시작 지점으로 이동 |
\n | Line Feed - 개행 |
\r | Carriage Return - 커서를 처음으로 이동 |
\t | Tab(horizontal) |
\v | Tab(vertical) |
\uXXXX | 유니코드 |
\’ | 작은따옴표 |
\” | 큰따옴표 |
\\ | 백슬래시 |
<aside> <img src="/icons/chat_gray.svg" alt="/icons/chat_gray.svg" width="40px" /> 자바스크립트에서 Line Feed와 Carriage Return은 모두 개행을 의미하지만, 일반적으로 Line Feed를 사용해 개행한다.
</aside>
일반 문자열과 달리 템플릿 리터럴 내에서는 이스케이프 시퀀스를 사용하지 않고도 줄바꿈이 허용되며, 모든 공백도 있는 그대로 적용된다.
문자열은 문자열 연산자 +를 사용해 연결할 수 있다.
템플릿 리터럴 내에서는 ${}으로 표현식을 감싸 간단히 문자열을 삽입할 수 있다.
문자열 연산자보다 가독성 좋고 간편하게 문자열을 조합할 수 있다.
표현식의 평가 결과가 문자열이 아니더라도 문자열로 타입이 강제로 변환되어 삽입된다.