Frontend/JAVASCRIPT

JS - 원시 타입 vs 참조 타입

<zinny/> 2023. 1. 17. 11:49
728x90

원시타입 (Primitive Type)

변수들의 데이터 복사가 일어날 때 메모리 공간을 새로 확보하여 독립적인 값을 저장

string, number, bigint, boolean, undefined, ES6부터 추가된 symbol

변수에 할당될때, 메모리의 고정 크기로 원시 값을 저장

값이 변하지 않는 불변성

재할당시, 새로운 메모리에 재할당한 값이 저장되고 변수가 가리키는 메모리가 달라졌을 뿐이다.

 

참조타임 (reference Type)

메모리에 직접 접근하지 않고 메모리의 위치 (주소)에 대한 간접적인 참조를 통해 메모리에 접근

원시 타입을 제외한 나머지 ( 배열, 객체, 함수 등등)

데이터 자체는 별도의 메모리 공간에 저장되고 , 변수에 할당 시 데이터에 대한 주소가 저장됨

주소는 특별한 동적인 데이터 보관함(heap 힙)에 보관됨

값을 재할당 할 경우 주소를 참조한 모든 값이 영향을 받는다.

자바스크립트 엔진이 가지고 있는 메모리 주소를 이용해서 변수 값에 접근

참조 타입은 주소값을 복사하기 때문에 원본 데이터의 값이 바뀌면 복사한 데이터의 값도 변경됨

728x90