자바스크립트의 데이터 타입은 8가지가 있고, 크게 원시타입과 객체타입으로 분류할 수 있다.
원시 타입
- 숫자 타입 : 정수, 실수 구분 없이 하나의 숫자 타입만 존재한다. 자바스크립트의 숫자는 배정밀도 64비트 부동소수점 형식의 2진수 (실수)로 처리된다.
- 문자열 타입 : 자바스크립트의 문자열은 원시 타입 즉 변경 불가능한 값이다. ES6에서 도입된 템플릿 리터럴은 이스케이프 시퀀스(\n 등) 을 사용하지 않고도 줄바꿈이 허용된다.
- 불리언 타입 : true & false
- undefined 타입 : 값을 할당하지 않은 변수가 가지는 값
- null 타입 : 값이 없음을 의도적으로 명시할 때 사용하는 값 변수에 null을 의도적으로 할당하는 것은 이전에 변수에 할당되어 있던 값을 더 이상 참조하지 않겠다는 의미이다.
- 심벌 타입 : 다른 값과 중복되지 않는 유일한 값
- BigInt : 임의 정밀도로 정수를 나타낼 수 있는 JavaScript 숫자 원시 값
객체 타입
- 객체, 함수, 배열 등이 이에 해당한다.
typeof 연산자
- 변수의 데이터 타입을 typeof 연산자로 알아낼 수 있다.
let num = 3;
console.log(typeof num); //number
let func = function() {};
console.log(typeof func); //function
let arr = [];
console.log(typeof arr); //object
let ob = {};
console.log(typeof ob); //object
// 변수에 할당하지 않은 값도 알 수 있다.
console.log(typeof (1<2)); //boolean
console.log(typeof ('안'+'녕')); //string
데이터 타입이 필요한 이유
- 값을 메모리에 저장하기 전, 필요한 적정 공간을 결정할 수 있다. 데이터 타입별로 필요한 메모리 공간이 다르기 때문에, 이를 통해 메모리 낭비를 방지할 수 있다.
- 또한 값을 참조할 때 한번에 읽어야 할 메모리의 크기를 알 수 있다. (값을 읽을 선두 메모리 주소에 접근하고, 여기서 부터 읽어들여야 할 메모리 크기까지를 참조한다.)
- 메모리에 저장되는 값은 2진수 → 비트의 나열이다. 같은 비트의 나열이어도 데이터 타입에 따라 다르게 읽히기 때문에, 읽어들인 값을 어떻게 해석할지 결정할 수 있다.
참고자료
- 모던 자바스크립트 딥다이브 6장 데이터타입
'JavaScript > JavaScript' 카테고리의 다른 글
[JavaScript] net::ERR_ABORTED 404 (NOT FOUND) 에러 (0) | 2022.06.30 |
---|---|
[JavaScript] 문자열 메서드 정리 (0) | 2022.06.27 |
[JavaScript] HTML, CSS, JS로 만든 웹계산기 (0) | 2022.06.09 |
[JavaScript] arr.sort() 메서드 (배열의 정렬) (0) | 2022.05.19 |
[JavaScript] 원시타입 vs 참조타입 (0) | 2022.04.24 |