Recent Posts
Recent Comments
Archives
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- git
- domain
- 코드카타
- error
- React
- 티스토리챌린지
- 내일배움캠프
- useRouter
- 프로젝트 셋팅
- 프로그래머스
- 자주 까먹는
- deep dive
- vscode
- array정적메서드
- 초기셋팅
- 셋팅
- 코딩테스트
- Next
- 모던 자바스크립트
- 코테
- nextjs
- 모던자바스크립트
- CORS
- js
- 구글 로그인
- 스파르타코딩클럽
- 리터럴
- 소셜 로그인
- 오블완
- vercel
- Today
- Total
파피루스
23장, 실행 컨텍스트 본문
소스 코드
: 실행가능한 코드 ; executable code)
종류
- 전역 코드
- 함수 코드
- eval 코드
- 모듈 코드
자바스크립트 엔진은 소스코드를 평가와 실행으로 나누어 처리한다.
소스코드의 평가
1) 선언문 실행
2) 식별자를 키로 실행 컨텍스트가 관리하는 스코프(렉시컬 환경의 환경 레코드)에 등록
소스코드의 실행 = 런타임 시작
1) 실행 컨텍스트가 관리하는 스코프에서, 실행에 필요한 정보를 검색해서 취득한다.
2) 실행 컨텍스트가 관리하는 스코프에, 실행 결과를 등록한다.
실행 컨텍스트
: 소스코드를 실행하는 데 필요한 환경을 제공하고 코드의 실행 결과를 스택(stack) 구조로 관리한다.
역할
1. 전역 코드 평가
: 전역 코드의 선언문 실행 후, 결과를 컨텍스트의 전역 스코프에 등록한다.
2. 전역 코드 실행
: 전역 변수에 값이 할당되어 함수가 호출된다.
(함수가 호출되면 전역 코드의 실행을 일시 중단하고 코드 실행 순서를 변경하여 함수 내부로 진입한다.)
3. 함수 코드 평가
: 매개변 수 및 지역 변수 선언문 실행 후, 결과를 컨텍스트의 지역 스코프에 등록한다.
(+arguments 객체 생성 및 this 바인딩)
4. 함수 코드 실행
: 변수에 값이 할당되고 메서드가 호출된다. 메서드 실행이 종료되면 함수 코드 실행 과정이 종료되고 함수 호출 이전으로 되돌아가 전역 코드 실행을 계속한다.
렉시컬 환경
: 식별자를 등록하고 관리하는 저장소
참고)
- 실행 컨텍스트 스택 : 코드의 실행 순서 관리
- 렉시컬 환경 : 스코프와 식별자 관리
렉시컬 환경의 구성
1. 환경 레코드 : 스코프에 포함된 식별자를 등록하고 해당 식발자에 바인딩된 값을 관리한다.
2. 외부 렉시컬 환경에 대한 참조 : 상위 스코프를 가리킨다.
'Book > 모던 자바스크립트 Deep Dive' 카테고리의 다른 글
22장, this (0) | 2024.05.29 |
---|---|
21장, 빌트인 객체 (0) | 2024.05.29 |
20장, _ strict mode (0) | 2024.05.28 |
19장, 프로토 타입 (0) | 2024.05.17 |
18장, 함수와 일급 객체 (0) | 2024.05.09 |