티스토리 뷰

프로그래밍 언어는 값을 자료형(type)으로 분류한다.
이 자료형에 따라 값을 구분하여 알고리즘을 구현하는 만큼 자료형은 매우 중요한 기초지식이다.
자바스크립트의 경우 이 자료형을 크게 두 가지로 분류한다.
우선 기본 타입이 되는 원시타입(primitive data type)이 있고 참조타입(reference data type)이 있다.
원시타입(primitive data type)
값이 변수에 할당될 때 메모리 상으로 고정된 크기로 저장된다.
const a = 4;
예를 들어 위와 같이 변수 a에 값이 할당되었을 때 숫자4는 8바이트만큼의 메모리 공간을 마련하여 직접 숫자 4를 보관한다.
이처럼 고정된 공간에 보관된 원시 타입인 값은 불변 값(immutable value)의 특징을 갖는다.
원시타입인 자료형은 다음과 같이 다양하다.
1. 문자형 : " " 혹은 ' '이거나 ``(backtick)으로 둘러싸인 값이며 글자수가 1개 이상인 값이다.
자바스크립트에서는 ""과 ''의 차이점은 없다.
""과 ''으로 둘러싸인 값이 개행을 하면 에러가 발생하지만 ``의 경우 개행을 해도 에러가 발생하지 않는다.
2. 불린형 : true와 false 두가지의 값을 갖는다.
3. 심볼형 : ES6부터 추가된 자료형이며 다른 원시타입의 자료형과 다르게 변경이 불가능한 자료형이다.
4. 숫자형 : 숫자 형태를 가진 값
타 프로그래밍 언어와 달리 자바스크립트는 숫자형을 정수, 소수, 비교적 큰 수, 비교적 작은 수 등 구체적으로 나눠 사용하지 않고 하나로 정의한다.
숫자형은 64비트로 저장되며 컴퓨터가 숫자를 비트로 변환하여 메모리에 저장한다.
한편, 숫자형에는 Infinity와 NaN이란 값이 있다.
Infinity는 어떠한 수보다 큰 값을 의미하며 어떠한 숫자를 infinity로 나누면 항상 0으로 나온다.
NaN은 산술 연산의 결과가 유효하지 않거나 숫자가 너무 커 표현할 수 없을 때 나오는 값이다.
5. null : 빈 값을 의미이다.
이 null의 타입을 체크하기 위해 다음과 같이 코드를 입력했다고하자!
const a = null;
consol.log(typeof a) // 결과 object
타입을 체크한 결과 객체라고 나온다.
이것은 자바스크립트의 기존 이슈이며 null을 객체로 오해하지 않도록 주의하자!
6. undefined : 존재하지 않는 값을 의미하며 변수가 정의되었지만 값이 할당되지 않은 상태라는 점에서 null과 다르다.
참조타입(reference data type)
변수에 고정된 크기의 값을 저장하지 않으며 변수가 값의 메모리 주소를 참조하도록 한다.
참조 타입에는 객체만이 존재하며 객체는 속성들의 집합을 의미하기 때문에 집합 내부에는 순서 및 크기가 고정되어 있지 않는다.
따라서 참조 타입은 값의 메모리 주소를 변수에 할당하여 값을 참조하도록 하여 변수의 값을 활용할 때 저장된 메모리 주소를 찾아가서 값을 갖고 온다.
객체 : {}안에 key : value 형태로 1개 혹은 여러개로 이루어져 있다.
예 :
{
"id" : 1,
"age" : 10,
"name" : "qwxcersd",
}
key는 반드시 문자형이어야 하며 그 외 원시타입은 올 수 없다.
key를 통해 해당 key에 매핑된 값에 접근할 수 있다.
전역 객체(global object) : 모든 객체의 부모 객체를 의미한다.
전역 객체를 부모 삼아서 Function, Array, 새로운 형태의 객체 등의 표준 객체들이 만들어진다.
'Languages > JS' 카테고리의 다른 글
Promise 갖고 놀아 보기 (0) | 2023.05.19 |
---|---|
this (0) | 2021.11.15 |
가비지컬렉션 (0) | 2021.10.08 |
이벤트 루프(event loop) (0) | 2021.05.14 |
비동기 2편(async, await) (0) | 2021.05.13 |