(자바스크립트)실행 컨텍스트, 렉시컬 환경

trina lee·2023년 4월 29일

실행 컨텍스트 (Execution context)

  • 자바스크립트 엔진이 코드를 실행하기 위해 필요한 모든 정보를 담고 있다.
  • 이를 통해 스코프, 호이스팅 등의 자바스크립트의 동작 원리를 이해할 수 있다.

렉시컬 환경 (Lexical Enviroment)

  • 특정 코드가 작성, 선언된 환경(장소)을 의미한다.
  • 실행할 스코프 범위 안에 있는 변수와 함수, 상위 스코프에 대한 정보를 담은 객체이다.
  • 모든 함수는 자신이 정의된 위치에 따라서 자신의 렉시컬 환경을 가지며, 이러한 렉시컬 환경의 동작 방식은 함수의 스코프와 클로저 등의 개념을 이해하는데 중요하다.

실행 컨텍스트와 렉시컬 환경의 관계

  • 자바스크립트에서는 함수가 선언될 때, 함수 내부에서 사용되는 모든 변수들은 해당 함수의 렉시컬 환경에 저장된다. 그리고 이 렉시컬 환경은 실행 컨텍스트 내의 변수 객체에 저장된다.
  • 실행 컨텍스트는 실행하고 있는 함수 내의 변수 상태를 저장하고 있는데, 실행 컨텍스트가 이를 렉시컬 환경이라는 객체에 저장해두고 변경이 있을 때마다 업데이트하고 필요할 때 접근해서 갖다 쓴다.

실행 컨텍스트는 크게 3가지의 컴포넌트로 구성된다.

  1. 변수 객체: 현재 컨텍스트 내에서 사용되는 변수, 함수 선언 등을 포함한 정보를 담은 객체이다.
  2. 스코프 체인: 현재 컨텍스트의 유효 범위를 나타내는 스코프 체인을 구성한다. 이 스코프 체인은 변수 객체와 상위 컨텍스트의 스코프 체인을 참조하여 구성된다.
  3. this 값: 현재 컨텍스트에서의 this 값이다.

실행 컨텍스트 동작 방식

  • 새로운 함수가 실행되면 새로운 실행 컨텍스트가 생성되고, 이전 실행 컨텍스트는 스택(stack)에 저장된다. 이렇게 생성된 실행 컨텍스트는 스택에서 가장 상단에 위치하며, 해당 컨텍스트에서 실행되는 코드의 변수, 함수 등이 해당 컨텍스트 내에서 유효한 범위를 갖게 된다.

렉시컬 환경 동작 방식

  • 함수 내에서 변수를 참조하면 자바스크립트 엔진은 현재 렉시컬 환경에서 해당 변수를 찾는다. 만약 현재 렉시컬 환경에서 해당 변수를 찾지 못하면 상위 스코프 체인을 따라 올라가면서 변수를 찾는다. 이러한 동작 방식으로 자바스크립트는 스코프 체인을 통해 변수를 검색한다.
profile
지금은 개발 모드

0개의 댓글