- 자바스크립트 엔진은 코드 실행 전 실행 컨텍스트를 생성한다.
- 실행 컨텍스트는 두 단계를 통해 생성된다.
- 생성 단계에서 자바스크립트 엔진은 변수 선언을 읽는다.
- 실행 단계에서 자바스크립트 엔진은 변수 값을 할당한다.
렉시컬 환경(Lexical Environment)
- 함수의 렉시컬 환경은, 함수가 사용하는 변수들을 둘러싼 환경을 의미한다.
- 특정 변수의 값은 함수의 렉시컬 환경 안에서 찾을 수 있다.
- 렉시컬 환경은 실행 컨텍스트 안에 정의된 Variable Object로 이해할 수 있다.
생성 단계에서의 코드 실행
- 자바스크립트 엔진은 생성 단계에서 함수 선언문, 함수 표현식, 변수 등을 읽어 실행 컨텍스트에 저장한다.
- 변수의 경우, 실행 컨텍스트의 렉시컬 환경을 구성한다.
- 함수 선언문 외에 변수는 값이 저장되지 않는다. /// 함수-> 값 변수-> 값x
실행 단계에서의 코드 실행
- 자바스크립트 엔진은 변수에 값을 할당하는 구문을 만나면 실행 컨텍스트에 값을 저장한다.
- 그 외 코드를 한 줄씩 읽어 나가며 실행한다.
코드 실행 시 변수 처리
- 자바스크립트 엔진이 코드를 읽으면, 생성 단계에서 실행 컨텍스트를 생성한다.
- 함수 선언문은 생성 단계에서 함수 전체가 실행 컨텍스트에 저장된다.
- var 변수는 저장 시 undefined로 초기화된다.
- let, const는 초기화 되지않는다. -> unintialized
'Elice' 카테고리의 다른 글
[TIL]엘리스트랙 4주차 3일 (0) | 2023.08.30 |
---|---|
[TIL]엘리스트랙 4주차 1일 (0) | 2023.08.28 |
[TIL] 엘리스트랙 Javascript (0) | 2023.08.24 |
[TIL]엘리스트랙 Javascript (0) | 2023.08.23 |
[TIL] 엘리스 트랙 (0) | 2023.08.22 |