Tech

Diary

Lecture

개발중

About Me

개발중

JS 메모리힙과 콜스택

JeongSeulho

2024년 03월 12일

준비중...
클립보드로 복사
thumbnail

1. 메모리 힙, 콜 스택 변수 저장 구조

image

(1) 원시 타입

  • 콜 스택에 값 10이 저장(함수 호출 시에도 콜 스택에 쌓임)
  • 변수 a에는 값 10이 저장된 콜 스택의 메모리 주소값이 저장
  • 변수 식별자a는 콜스택 상의 실행 컨텍스트의 렉시컬 환경이라는 곳에 저장

(2) 참조 타입

  • 객체, 함수, 배열 등의 참조 값 자체는 메모리 힙에 저장
  • 콜 스택에 메모리 힙의 주소값이 저장
  • 변수 b, c, d에는 메모리 힙의 주소값이 저장된 콜 스택의 메모리 주소값이 저장
  • 마찬가지 변수 식별자 b, c, d는 콜스택 상의 실행 컨텍스트의 렉시컬 환경이라는 곳에 저장

2. 원시 타입

(1) 원시 타입 변수 생성

image

(2) 원시 타입 변수 재할당

image

  • 변수 a에 20을 재할당하면 기존 메모리의 값 변경이 아닌, 기존 20을 가리키는 메모리 주소값을 변수 a에 저장

constlet은 해당 변수에 메모리 주소 값을 재할당 가능할지 여부를 결정하는 키워드이다.

(3) 원시 타입 변수 재할당과 GC

image

  • 변수 b에 30을 재할당하면 새로운 메모리를 확보 및 30을 저장하고, 변수 새로운 메모리 주소 값을 변수 b에 저장
  • 이후 적절한 조건과 시점에서 GC를 통해 참조되지 않는 값 10이 메모리 힙에서 해제