Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 모션비트
- Java
- userprog
- corou
- 알고리즘
- 자바스크립트
- CSS
- 소켓
- 리액트
- 코드트리
- 크래프톤 정글
- 나만무
- pintos
- Vue.js
- 큐
- 시스템콜
- 티스토리챌린지
- 백준
- 오블완
- 사이드프로젝트
- 4기
- Flutter
- TiL
- 스택
- defee
- 핀토스
- 자바
- JavaScript
- HTML
- 크래프톤정글
Archives
- Today
- Total
미새문지
실행 컨텍스트(Execution Context) 본문
728x90
실행 컨텍스트(Execution Context)
실행 컨텍스트는 자바스크립트 코드가 실행되는 환경을 정의하는 개념으로, 스크립트나 함수 실행 시 관련 변수, 객체, 함수 등의 정보를 담고 있는 구조이다.
자바스크립트의 스코프, 호이스팅, 클로저 등을 이해하는 핵심 개념이기 때문에 중요하다.
실행 컨텍스트의 구성 요소
- 변수 객체(Variable Environment)
- 실행 컨텍스트 내에서 선언된 변수, 함수 선언, this 값을 저장하는 공간이며, 변수 선언 및 함수 선언을 위한 호이스팅이 이 단계에서 처리된다.
- 초기화 시점에는 함수 선언만 포함되며, 변수는 undefined로 초기화된다.
- 스코프 체인(Scope Chain)
- 현재 컨텍스트와 부모 컨텍스트를 참조할 수 있는 링크 체인이며, 변수를 검색할 때 가장 먼저 현재 컨텍스트에서 찾고, 없으면 상위 컨텍스트로 올라가며 찾는다.
- this 바인딩
- 실행 컨텍스트에 연결된 this 값이며, 함수 호출 방식에 따라 달라진다.
- 일반 함수 호출: 전역 객체 (window 또는 global)
- 메소드 호출: 해당 객체
- 새로운 호출: 새로 생성된 객체
- 화살표 함수: 선언된 위치의 상위 컨텍스트에서 this를 상속
- 실행 컨텍스트에 연결된 this 값이며, 함수 호출 방식에 따라 달라진다.
실행 컨텍스트의 종류
- 전역 실행 컨텍스트
- 자바스크립트 코드가 처음 실행될 때 생성되며, 전역 객체와 연결된다.
- 브라우저 환경에서는 window 객체가 전역 객체이다.
- 함수 실행 컨텍스트
- 함수가 호출될 때마다 생성되며, 각 함수 실행 컨텍스트는 독립적으로 존재하고 함수 호출이 끝나면 메모리에서 사라진다.
실행 컨텍스트의 생성 과정
- 생성 단계
- 변수 객체가 생성되고, 함수 선언은 메모리에 등록되며, 변수는 undefined로 초기화된다.
- 초기화 단계
- 변수에 값이 할당되고, 함수의 코드가 준비되며, this 바인딩이 결정된다.
- 코드 실행 단계
- 코드를 순차적으로 실행하며, 변수와 함수 호출을 처리한다.
실행 컨텍스트 스택
실행 컨텍스트는 스택 형태로 관리된다.
- 코드 실행이 시작되면 전역 실행 컨텍스트가 스택에 쌓임
- 함수가 호출될 때마다 새로운 실행 컨텍스트가 생성되어 스택의 최상단에 추가
- 함수 실행이 종료되면 해당 실행 컨텍스트는 스택에서 제거
728x90
'개발 TIL' 카테고리의 다른 글
Tanstack-query (0) | 2025.01.09 |
---|---|
Reflow와 Repaint (0) | 2025.01.08 |
클로저(Closure) (0) | 2025.01.07 |
SOLID 원칙 (0) | 2025.01.06 |
Typescript란? (0) | 2025.01.03 |