실행 컨텍스트란?
실행할 코드에 제공할 환경 정보들을 모아놓은 객체
호출 스택(Call Stack)
호출 스택이란 코드를 실행하는 순서를 담은 자료 구조이다.
코드를 후입선출(LIFO : Last In First Out)의 순서로 실행 시킨다.
실행 컨텍스트 구성요소
- VariableEnvironment
- LexicalEnvironment
- ThisBindings
VE와 LE의 구성 요소
- record : 현재 실행 컨텍스트와 관련된 코드의 식별자 정보(hoisting)
- outer : 외부 환경 참조 정보
VE와 LE의 차이점
실행 컨텍스트 생성 시점에는 내용이 완전히 같지만, 이후 스냅샷 유지 여부가 다르다.
VE는 실행 컨텍스트 생성 시점에 환경 정보를 스냅샷으로 그대로 담고 있지만
LE는 변경된 환경 정보를 반영한다.
호이스팅 (hoisting)이란?
변수와 함수의 메모리 공간을 선언 전에 미리 할당하는 것을 의미한다.
쉽게 말해서 변수나 함수의 선언부를 유효범위(스코프) 최상단으로 끌어올리는 것이다.
2023.04.06
항해99 D-96
공부하다보면 종종 길을 잃는 순간이 있다.
길을 잃지 말자.
'Development > JavaScript' 카테고리의 다른 글
객체 (Object), 클래스 (Class), 인터페이스 (Interface) (0) | 2023.05.03 |
---|---|
JS기초_보충(VE와 LE) (0) | 2023.04.05 |
JS기초_보충(실행 컨텍스트) (0) | 2023.04.05 |
JS기초_보충(데이터 타입 심화) (0) | 2023.04.05 |
JS 기초_보충(Map과 Set) (0) | 2023.04.04 |