이런저런 IT 이야기
article thumbnail
Published 2023. 5. 26. 08:36
Javascript Execution context Javascript
반응형

실행 컨텍스트(Execution Context)는 JavaScript 코드가 실행되는 환경을 나타내는 개념입니다. JavaScript 엔진은 코드를 실행할 때 실행 컨텍스트를 생성하고 관리합니다. 각 실행 컨텍스트는 해당 코드의 실행에 필요한 정보를 포함하고 있으며, 스코프 체인, 변수, 함수 등의 정보를 저장합니다.

실행 컨텍스트는 다음과 같은 요소로 구성됩니다:

  1. 변수 객체(Variable Object): 현재 컨텍스트에서 선언된 변수, 함수 선언, 매개변수 등을 포함하는 객체입니다. 전역 컨텍스트의 경우 전역 객체(Global Object)가 변수 객체로 사용됩니다.
  2. 스코프 체인(Scope Chain): 변수 객체와 상위 스코프의 변수 객체들을 연결한 체인입니다. 스코프 체인은 변수 및 함수를 검색하는 데 사용됩니다.
  3. this 값: 현재 실행 중인 함수의 컨텍스트에서 참조하는 객체를 가리킵니다.
  4. 외부 환경(Outer Environment): 현재 컨텍스트의 상위 컨텍스트(부모 스코프)를 가리킵니다.
  5. 코드 실행 순서와 관련된 추가 정보: 코드 실행 상태, 예외 처리 등의 정보를 포함합니다.

실행 컨텍스트는 스택(Stack) 형태로 관리됩니다. 함수가 호출되면 해당 함수의 실행 컨텍스트가 생성되어 스택에 쌓이고, 함수의 실행이 완료되면 해당 컨텍스트가 스택에서 제거됩니다. 이렇게 스택에 쌓여있는 실행 컨텍스트는 코드 실행 및 변수 및 함수의 스코프 결정에 사용됩니다.

실행 컨텍스트는 JavaScript의 동작 원리를 이해하는 데 중요한 개념이며, 변수의 스코프, 함수의 호출 및 실행, 클로저의 동작 등과 관련된 다양한 기능을 구현하는 데 사용되며, 주요한 실행 컨텍스트의 종류는 다음과 같습니다:

  1. 전역 실행 컨텍스트(Global Execution Context): 코드 실행 시 가장 처음 생성되는 실행 컨텍스트로, 전역 스코프를 나타냅니다. 전역 변수와 전역 함수는 이 실행 컨텍스트에 포함됩니다.
  2. 함수 실행 컨텍스트(Function Execution Context): 함수가 호출될 때마다 생성되는 실행 컨텍스트입니다. 각 함수는 독립된 함수 실행 컨텍스트를 가지며, 함수 내부의 지역 변수와 매개변수, 내부 함수 등이 해당 컨텍스트에 포함됩니다.
  3. eval 실행 컨텍스트(Eval Execution Context): eval() 함수가 호출될 때 생성되는 실행 컨텍스트입니다. eval() 함수 내에 실행되는 코드는 독립된 eval 실행 컨텍스트를 가지며, 해당 컨텍스트는 동적으로 생성됩니다.
  4. 모듈 실행 컨텍스트(Module Execution Context): ES6에서 도입된 모듈 기능에서 사용되는 실행 컨텍스트입니다. 각 모듈은 독립된 모듈 실행 컨텍스트를 가지며, 모듈 내부의 변수와 함수는 해당 컨텍스트에 포함됩니다.

각 실행 컨텍스트는 변수, 함수, 스코프 등을 관리하기 위해 환경 정보를 가지고 있으며, 실행 컨텍스트 스택(Call Stack)에 쌓여서 코드 실행의 흐름을 관리합니다. 코드의 실행 순서에 따라 새로운 실행 컨텍스트가 생성되고 실행 컨텍스트 스택에 push되며, 실행이 완료되면 스택에서 pop됩니다.

반응형
profile

이런저런 IT 이야기

@이런저런 IT 이야기

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

profile on loading

Loading...

검색 태그