자바스크립트의 모든 값은 데이터 타입을 갖는다.
숫자타입
ECMAScript 사양에 따르면 숫자 타입의 값은 배정밀도 64비트 부동소수점 형식을 따른다. 즉 모든 수를 실수로 처리하며 정수만 표현하기 위한 데이터타입이 별도로 존재하지 않는다.
//모든 숫자 타입이다.
var integer = 10; //정수
var double = 10.12; //실수
var negative = -20; //음수
자바스크립트의 숫자타입은 정수만을 위한 타입이 없고 모든 수를 실수로 처리한다. 정수로 표시된다고 하여도 실수라는 것을 의미한다. 정수로 표기되는 수끼리 나누면 실수가 나올 수 있다.
//숫자 타입은 모두 실수로 처리된다.
console.log(1 ===1.0); //true
console.log(4/2); //2
console.log(3/2); //1.5
문자열 타입
문자열은 0개 이상의 16비트 유니코드 문자 (UTF-16)의 집합으로 전 세계 대부분의 문자를 표현할 수 있다.
문자열은 작은따옴표(' ') , 큰따옴표(" "), 백틱(` `) 으로 텍스트를 감싼다. 자바스크립트에서 가장 일반적인 표기법은 작은 따옴표를 사용하는 것이다.
다른 타입의 값과 달리 문자열을 따옴표로 감싸는 이유는 키워드나 식별자 같은 토큰과 구분하기 위해서이다.
만약 문자열을 따옴표로 감싸지 않으면 자바스크립트 엔진은 키워드나 식별자 같은 토큰으로 인식한다.
자바는 문자열을 객체로 표현한다. 그러나 자바스크립트의 문자열은 원시타입이며, 변경 불가능한 값이다. 문자열이 생성되면 그 문자열을 변경할 수 없다. (문자열불변성)
템플릿 리터럴
ES6부터 템플릿리터럴 이라고 하는 새로운 문자열 표기법이 도입되었다. 일반적인 작은따옴표, 큰따옴표 말고 백틱을 사용해서 표현한다.
일반 문자열과 달리 템플릿 리터럴내에서는 줄바꿈이 허용되며, 모든 공백도 있는 그대로 적용된다.
표현식을 사용하려면 ${ }으로 감싼다.
문자열이 아니더라도 문자열로 강제 변환되어 삽입이 된다. 주의할 점은 반드시 템플릿 리터럴 내에서 사용해야 한다. 그렇지 않으면 문자열로 취급된다.
심벌타입
ES6에서 추가된 7번째 타입이다. 변경 불가능한 원시 타입의 값이다. 심벌값은 다른 값과 중복되지 않은 유일무의한 값이다. 따라서 주로 이름이 충돌할 위험이 없는 객체의 유일한 프로퍼티 키를 만들기 위해 사용한다.
리터럴은 원시값을 나타내고 심벌은 변경불가능한 원시값이다. 값은 외부에 노출되지 않고 중복되지 않는다.
'자바스크립트' 카테고리의 다른 글
타입 변환과 단축 평가 (0) | 2021.12.11 |
---|---|
데이터타입의 필요성 (0) | 2021.12.10 |
리터럴과 표현식 (0) | 2021.12.10 |
변수 (0) | 2021.12.09 |
자바스크립트 (0) | 2021.12.07 |