1. 원시자료
자바스크립트에서 원시 타입의 데이터(primitive type data; 원시 자료형)는 객체가 아니면서 method를 가지지 않는 6가지의 타입
string, number, bigint, boolean, undefined, symbol, (null)
원시 자료형의 특징
- “하나”의 정보를 담고 있다.
- 옛날에 코드를 작성하려면 데이터 저장소의 용량이 제한되어 있어 데이터 한 칸에 하나의 데이터만 담을 수 밖에 없었다. 그래서 단순한 데이터인 ‘원시적인’이 된 것.
- 원시 자료형은 보관함의 크기가 모두 같다. 참조는 조금 특별한 보관함.
- 변수에 담기는 값의 크기는 다르지만, 원시 자료형 값이 담기는 보관함의 크기는 동일
1
2
let a = 999;
let b = 99999999;
예시를 보면 a와 b의 값은 다르지만, 보관함의 크기는 동일.
- 원시 자료는 값 자체에 대한 변경이 불가능(immutable)하지만, 다른 값을 할당할 수는 있다.
1
2
let a = "hi"; // -> 여기서 a의 값은 "hi"
a = "oh"; // -> 여기서는 "oh"
2. null
null은 원시 타입에 속한다고 하지만 조금 다르다.
우선, null은 개체 값의 의도적인 부재를 나타내기 위해 사용한다.
1
typeof null === "object"; // true
로 뜬다. 이유가 뭘까
null이 객체에서 자주 사용되었기 떄문이라고 한다. null은 객체에서 빈 참조를 나타내는데 자주 사용된다.
null === 객체의 부재를 나타내는 원시 값
3. 참조 자료
참조 자료의 특징
- 원시 자료와는 다른 특별한 데이터 보관함에 저장이 된다.
- 보관함의 크기는 자유자재. 그래서 동적(dynamice)
- 우리가 값을 넣어주는 변수에는 주소라는 것이 저장된다. 데이터 보관함을 heap이라고도 부름.
- 데이터 보관함의 크기가 바뀌는 이유는, 수만가지의 데이터가 들어갈 때도 있고, 조금의 데이터가 들어갈 때도 있어서 들어가는 데이터의 양 만큼 보관함의 크기를 줄였다가 늘였다가 하는 것.
- 보관함의 크기를 고정시킨다면, 안에 들어가는 데이터의 양도 고정시켜야 하기 떄문.