development
메모리 영역에서의 heap과 stack
Happyoon ~
2021. 10. 8. 19:06
728x90
반응형
데이터가 메모리의 힙 영역에 저장된다는 것을 대충 알고 있었지만 오늘 전보다 확실하게 개념을 잡았다.
우선, 첫번째 사진에서 heap영역에 다음의 ["만두",~] 데이터가 저장된다.
저장된 데이터의 주소값이 stack에 저장된다. (첫번째 사진의 heap의 왼쪽 빈칸이 stack이다.)
즉, 객체는 힙 영역에, 저장된 데이터의 주소값(참조값)은 스택 영역에 생성되어 변수는 스택 영역에 생성됨을 알 수 있다.
따라서, 변수에는 주소값(참조값)이 저장되고, 저장된 주소값을 heap 영역에서 찾아 해당 주소에 저장되어 있는 데이터 값들을 사용한다.
자바스크립트에서 사용자가 만드는 객체는 function, plain object, array가 있다.
(빌트인 객체로는 title, button 등이 있음)
number, boolean 타입은 스택에 값이 직접 들어있다. 힙을 통해 참조하지 않는다. 문자열 또한 직접 값이 들어있는 것으로 표현되어 있지만 사실은 참조값이 들어있다. 이에 관한 사항은 다음에 더 정확한 내용을 추가하도록 하겠다.(그림3)
두번쨰 사진에서 함수는 heap영역에 생성되고, 변수 f1은 스택에 생성됨을 확인할 수 있다.
반응형