[Javascript] 원시 자료형과 참조 자료형

Yalstrax·2021년 10월 22일
1

Study

목록 보기
24/25
post-thumbnail

원시 자료형과 참조 자료형

원시 자료형

JS에서 원시 자료형은 객체가 아니면서 메소드를 가지지 않는 6가지 타입이다.

string, number, boolean, undefined, symbol, (null)

이 중, 자주 사용되는 4(+1)가지 원시 자료형은

string, number, boolean, undefined, (null) 이다.

원시 자료형은 단 하나의 데이터를 담고 있다.

80년대엔 메모리 용량이 제한되어 변수 하나에 데이터 용량이 제한된 하나의 원시 자료형 밖에 담을 수 밖에 없었다. 그래서 이와 같은 자료형을 원시 자료형이라 부른다.

참조 자료형

원시 자료형이 아닌 모든 것은 참조 자료형이다.

대표적으로 배열, 객체, 함수가 있다.

참조 자료형에는 하나의 데이터가 아닌 여러 데이터가 담기게 된다. 그래서 참조 자료형은 원시 자료형이 보관되는 데이터 보관함이 아닌 특별한 데이터 보관함에 저장된다.

변수에 저장되는 값은 이 데이터가 위치한 곳을 가리키는 주소가 저장된다.

이 특별한 데이터 보관함은 데이터의 크기에 따라 사이즈를 늘렸다 줄였다 할 수 있다. (동적으로 변한다.)

실질적인 데이터는 특별한 보관함에 저장되고, 변수에 저장되는 값은 그 보관함함에 데이터가 위치한 주소이기 때문에, 이를 참조한다 하여 참조 자료형이라 부른다.

그리고 특별한 데이터 보관함을 heap이라 부른다.

즉, 원시 자료형이 할당될 때에는 변수에 값(value) 자체가 담기고, 참조 자료형이 할당될 때는 보관함의 주소(reference) 가 담긴다.

그래서 참조 자료형은 기존에 고정된 크기의 보관함이 아니라, 동적으로 크기가 변하는 특별한 보관함을 사용할 수 있다.

동적으로 크기가 변하는 이유는, 대량의 데이터를 쉽게 다루기 위함이다. 추가 또는 삭제하는 데이터에 따라 데이터 저장 공간의 크기가 달라지는 것이 고정된 데이터 공간을 사용하는 것 보다 효율적이기 때문이다.

profile
즐겁다면 그것만으로 만만세!

0개의 댓글