원시 자료형 (Primitive Type Data)
- 자바스크립트에서 원시 타입의 데이터(primitive type data; 원시 자료형)는 객체가 아니면서 method를 가지지 않는 6가지의 타입
- string, number, bigint, boolean, undefined, symbol, (null)
- 데이터 보관함 한 칸에 하나의 데이터만 넣을 수 있음.
- 원시 자료형 데이터 자체는 크기가 제각각이지만, 원시 자료형 데이터가 담기는 보관함의 크기는 동일
참조 자료형 (Reference Type Data)
- 원시 자료형이 아닌 모든 것은 참조 자료형
- 배열, 객체, 함수
- 참조 자료형의 데이터는 heap이라는 공간에 저장됨.
- 참조 자료형 변수에는 데이터가 위치한 주소값이 저장되지만 변수에 할당하지 않는 경우 주소값 없이 데이터만 heap에 저장, 데이터는 heap 영역에 저장됨. -> 그래서 참조 자료형임
- heap에선 동적으로 사이즈 조정 가능함.
- 배열의 주소값을 복사하면 원본과 복사본은 동일 주소값과 주소값이 가리키고 있는 heap 영역 데이터를 비교하면 다름.
아래 코드 설명 -> 비교되는 배열 [22,23,27]은 head 영역에
데이터가 저장되어 있지만 변수에 할당이 안되어있기 때문에 주소값을 갖고 있지 않음.
따라서 age or age2 와 비교했을 때 false 가 나오는 것.
const age = [22,23,27];
const age2 = age;
age === age2 -> true;
age or age2 === [22,23,27] -> false;