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

Jin Lee·2022년 12월 15일
0

실행 컨텍스트
앞선 학습을 통해서 실행 컨텍스트가 전역에서 시작해 함수가 호출될 때 스택에 쌓인다는 것을 배웠습니다.
조금 더 핵심적으로 짚어본다면 1) 전역에 존재하는 코드, 2) 함수에 존재하는 코드를 잘 구별해야합니다.

전역에 존재하는 코드는 함수나 클래스 내부의 코드를 무시하고 컨텍스트를 가집니다.
함수에 존재하는 코드는 함수 내부에서만 컨텍스트를 가집니다.

그리고 호출되는 순서에 따라 스택에 쌓이고, 나중에 쌓여진 함수부터 실행됩니다.

렉시컬 환경
어려운 말처럼 보이지만, 렉시컬 환경은 식별자와 식별자에 연결된 값을 저장하는 자료구조입니다.

다음 예시를 살펴봅시다.

const myName = "Elice";

function Coder() {
  const title = "Coder Land";
  return title;
}

전역으로 생성되는 렉시컬 환경에서는 myName, Coder 이렇게 2개의 식별자와 식별자에 연결된 값이 저장됩니다.
myName에는 Elice가 들어있지만, Coder에는 스코프 체인으로 Coder와 연결되어 있습니다. 스코프 체인은 스코프가 연결된 구조를 말합니다.
그리고 Coder 함수의 렉시컬 환경에서는 title이라는 1개의 식별자와 식별자에 연결된 값이 저장됩니다.
또한, 전역 렉시컬 환경에 스코프 체인으로 연결되어 있습니다. 전역에서는 Coder라는 정보를 갖고 있기 때문입니다.

profile
coding plz

0개의 댓글