JS Deep Dive - 6.데이터 타입
자바스크립트(ES6)는 7개의 데이터 타입을 제공한다.
하나하나 자세히 살펴보자.
6.1 숫자 타입
int, long, float, double 등의 다양한 숫자 타입을 가진 다른 프로그래밍 언어와 달리 자바스크립트는 하나의 숫자 타입만을 가진다.
따라서 모든 수를 실수로 처리하며 정수만 표현하기 위한 데이터 타입이 별도로 존재하지 않는다. ( 모두 64비트 부동소수점 형식을 따름)
//모두 숫자타입
var integer = 10; //정수
var double = 10.12; //실수
var negative = -20; //음의 정수
또한, 2진수, 8진수, 16진수를 표현하기 위한 데이터 타입을 제공하지 않아 이들 값을 참조하면 모두 10진수로 해석된다.
또한 양의 무한대(Infinity), 음의 무한대(-Infinity), 산술연산 불가(NaN) 값도 표현할 수 있다.
6.2 문자열 타입
문자열 타입은 텍스트 데이터를 나타내는데 사용하며 ' 나 " 따옴표로 텍스트를 감싸 표현한다.
템플릿 리터럴
: ES6부터 새롭게 도입된 문자열 표기법. 백틱(` `)을 사용해 표현한다.
(백틱은 맥북에서 영어 키의 상태로 ₩를 입력하면 입력된다. `)
기존에는 위와 같이 이스케이프 시퀀스를 사용해 줄바꿈과 들여쓰기 같은 것을 표현했는데,
템플릿 리터럴을 사용하면 이스케이프 시퀀스를 사용하지 않고도 줄바꿈, 공백 등이 그대로 적용된다.
표현식 삽입
문자열 삽입은 다음과 같이 두 가지 방식으로 표현 가능하다.
#1
var first = 'Ung-mo';
var last = 'Lee';
// ES5:문자열연결
console.log('Mynameis ' + first + ' ' + last + '.'); // Myname is Ung-mo Lee.
#2
var first = 'Ung-mo';
var last = 'Lee';
// E56:표현식삽입
console.log('My name is ${first} ${last}.'); // My name is Ung-mo Lee.
위의 #2와 같이 표현식을 바로 삽입하고 싶을때 ${ } 으로 표현식을 감싸도 된다.
이때 꼭 템플릿 리터럴 내(=백틱 사용)에서 해주어야 하며 그렇지 않으면 문자열로 취급된다.
console.log(`1 + 2 = ${1 + 2} `); // 1 + 2 = 3
console.log('1 + 2 = ${1 + 2} '); // 1 + 2 = ${1 + 2}
6.7 심벌 타입
심벌(symbol) : ES6에서 추가된 7번째 타입으로, 변경 불가능한 원시 타입의 값
- 다른 값과 중복되지 않는 유일무이한 값
- 주로 이름이 충돌할 위험이 없는 객체의 유일한 프로퍼티 키를 만들기 위해 사용함.
- Sybol 함수를 호출해 생성
// 심벌값 생성
var key = Symbol( 'key') ;
console.log(typeof key); // symbol
// 객체 생성
var obj = {};
// 이름이 충돌할 위험이 없는 유일무이한 값인 심벌을 프로퍼티 키로 사용한다.
obj[key] = 'value';
console.log(obj[key]); // value