런타임이란?
일반명사) 컴퓨터 프로그램 실행을 돕는 소프트웨어
고유명사) 특정 언어로 만든 프로그램들을 실행할 수 있는 환경(프로그램)
왜 사용하는가? 프로그래밍 언어로 작성된 프로그램을 실행하기 위해서
JavaScript 런타임
JavaScript 가 구동되는 환경
종류로는 브라우저(크롬, 파이어폭스, 익스플로러 등) 프로그램과 Node.js 라는 프로그램이 있음.
JavaScript 엔진의 구성 :
Memory Heap 과 CallStack 으로 구성되어 있음.
콜스택(CallStack)
실행 콘텍스트(Execution Context) 를 통해 원시 타입 데이터(정수, 실수, 문자, boolean 등) 가 저장된다.
함수의 호출부도 여기에 저장된다.
메모리 힙(Memory Heap)
참조 타입(객체 등) 데이터가 저장된다.
메모리 할당이 일어나는 곳.
콜 스택, 메모리 힙의 데이터 저장 구조
원시 타입 데이터 (파란색 변수 a)
- 10 이라는 값 자체는 원시 타입이므로 콜 스택에 저장된다.
- 변수 a 에는 10 이 저장된 콜스택 메모리의 주소값이 저장된다.
참고) 변수 식별자 a 자체는 콜스택 상의 ‘실행 컨텍스트(Execution Context) 의 렉시컬 환경(Lexical Environment)’ 이라는 곳에 저장된다.
참조 타입 데이터 (핑크색 변수 b, c, d)
- 배열, 객체, 함수 등은 참조 타입이므로 메모리 힙에 저장된다.
- 참조 타입 데이터가 저장된 메모리 힙의 주소 값은 콜스택에 각각 저장된다.
- 메모리 힙의 주소 값이 저장된 콜스택의 주소값은 각각 변수 b, c, d 에 저장된다.
참고) 변수 식별자 b, c, d 이름 자체는 콜스택 상의 ‘실행 컨텍스트(Execution Context) 의 렉시컬 환경(Lexical Environment)’ 에 저장됨.
'프로그래밍 언어 > JavaScript' 카테고리의 다른 글
[JavaScript] 실행 컨텍스트 (0) | 2022.11.05 |
---|---|
[JavaScript] 스코프(Scope) (0) | 2022.11.05 |
[JavaScript] 변수 선언 방식 (var/ let/ const) (0) | 2022.11.05 |
[JavaScript] Primitive Type(원시 타입) 과 Reference Type(참조 타입) (0) | 2022.11.05 |
[JavaScript] 자바스크립트 언어의 특징 (0) | 2022.11.05 |