본문 바로가기

자바스크립트 리뷰

중첩 데이터의 메모리 저장방식 [JS문법 종합반 3주차 ]

일단 내용 전반은 스파르타 코딩클럽 [JS 문법 종합반 ] 3주차 데이터 타입 부분 강의자료를 보자. (개인 pc에 저장함,링크는 생략)

 

아래와 같은 객체가 있다고 하자. 

var obj = {
	x: 3,
	arr: [3, 4, 5],
}

메모리에서 obj.arr[1] 을 찾아보고자 한다. 어떻게 찾아 들어가야 할까? 

큰 그림을 보자면 obj는 아래와 같은 방식으로 메모리에 할당된다. 

특이한 점은 참조형 데이터는 메모리에서 별도의 공간을 갖게 된다는 점이다.

obj 는 참조형 데이터라서 별도의 메모리 영역을 갖게 된다. 아래 부분이다. 

여기에 obj의 프로퍼티들이 들어가게 된다.

 

또 arr 역시 참조형 데이터라서 별도의 영역을 갖게 된다. 아래 부분이다.

여기서 3이라는 데이터가 기존에 변수 x를 위해 이미 @5001에 생성되어 있다는 점을 주목하자. 이미 있으므로   arr[0] 을 위해 따로 데이터 영역을 할당하지 않고 기존에 3을 넣어 생성된 @5001을 가리키고 있다.