웹 개발 Web Development/Javascript

실행 컨텍스트 (Context) 의 개념

코딩고블린 2020. 6. 6. 13:51

 

 

이미지 출처 : https://medium.com/techracers/execution-context-basics-of-javascript-bb4ef8f1b845

 

실행 컨텍스트 (Context) 

 

실행 컨텍스트란, 코드의 흐름(문맥)이나 함수 동작에 필요한 환경 정보가 담긴 객체를 지칭한다.

자바스크립트에서는 다음과 같이 분류할 수 있다.

 

  • 전역 컨텍스트 : 프로그램의 모든 코드, 동작 환경을 포함하는 전역 환경이다. 프로그램 (혹은 페이지)가 종료 될 때 까지 유지된다.

  • 함수 컨텍스트 : 함수를 호출 할 때 지정되는 함수 동작 내부 환경

 

 

컨텍스트의 실행 과정 (생성 -> 실행)

 

전역 컨텍스트의 생성 과정

1.   전역 코드에 진입 및 전역 객체 생성

2.   전역 스코프체인 생성(초기화)

3.   변수 객체화

4.   this value 지정됨 (초기값: 전역객체 혹은 window)

 

함수 컨텍스트의 생성 과정

1.   함수 선언 시 함수 스코프 체인 생성

2.   변수, 인자(arguments), scope chain, this 객체화 및 지정 (this: 상위객체 혹은 전역객체)

 

 

스코프 체인(scope chain) 

스코프 체인은 해당 전역 또는 함수가 참조할 수 있는 변수, 함수 선언 등의 정보를 담고 있는 객체이다.

 

*호이스팅이란 변수, 함수의 선언부가 최상단으로 끌어올려지는 현상을 이야기한다. 자바스크립트 컴파일러가 선언과 구현(실행)을 별도로 처리하기 때문이다.