반응형
오늘은 Lexical 환경변수에 대해서 공부해 보았습니다. 실행 컨텍스트에 제일 중요하다고 할 수도 있는 렉시컬 환경변수를 알아 봅시다.
VariableEnvironment, LexicalEnvironment 개요
a. VE와 LE의 비교
i. 담기는 내용 : 동일
ii. 스냅샷 유지여부
1. VE : 유지
2. LE : 유지X
iii. 실행 컨텍스트를 생성할 때, VE에 정보를 먼저 담은 다음, 이를 그대로 복사해서 LE를 만들고 이후에는 주로 LE를 활용
b. 구성요소
i. VE, LE모두 동일하며, "environmentRecord" 와 "outerEnvironmentReference"로 구성
ii. environmentRecord(=record)
1. 현재 컨텍스트와 관련된 코드의 식별자 정보들이 저장
2. 함수에 지정된 매개변수 식별자 함수 자체 var로 선언된 변수 식별자 등
iii. outerEnvironmentReference(=outer)
LexicalEnvironment(1) - environmentRecord와 호이스팅
a. 개요
- 현재 컨텍스트와 관련된 코드의 식별자 정보들이 저장(수집)
- 수집 대상 정보: 함수에 지정된 매개변수 식별자, 함수 자체, var로 선언된 변수
- 컨텍스트 내부를 처음부터 끝까지 순서대로 흝어가며 수집
b. 호이스팅
- 변수정보 수집을 모두 마쳤더라도 아직 실행 컨텍스트가 관여할 코드는 실행 전의 상태임 (JS엔진은 코드 실행 전 이미 모든 변수정보를 알고 있는 것)
- 변수 정보 수집 과정을 이해하기 쉽게 설명한 "가상 개념"
c. 호이스팅 규칙
- 매개변수 및 변수에 대한 호이스팅
반응형
'내일배움캠프' 카테고리의 다른 글
WIL 4주차 정리 (0) | 2022.12.12 |
---|---|
TIL 18일차 정리 (0) | 2022.12.07 |
WIL 3주차 정리 (0) | 2022.12.04 |
TIL16일차 정리 (0) | 2022.12.01 |
TIL 15일차 정리 (0) | 2022.11.24 |