[javascript] 렉시컬 스코프(lexical scope)와 실행 컨텍스트의 관계는 무엇인가?

렉시컬 스코프(Lexical Scope)

렉시컬 스코프는 코드가 작성될 때 정적으로 결정되는 스코프의 개념입니다. 함수가 어디에서 호출되는지에 관계없이 함수가 어디에서 정의되었는지에 따라 스코프가 결정됩니다.

실행 컨텍스트(Execution Context)

실행 컨텍스트는 실행할 코드에 제공하는 환경 정보를 담고 있는 객체로, 함수의 호출 시 생성되며 실행 중인 코드의 런타임 환경을 추상화합니다.

이 둘의 관계는 다음과 같습니다:

  1. 렉시컬 스코프는 코드를 작성할 때 결정되므로 함수가 어디에서 정의되었느냐에 의해 스코프를 정의합니다.
  2. 실행 컨텍스트는 코드를 실행할 때 생성되며, 해당 코드의 런타임 환경을 추상화하여 나타냅니다.

따라서, 코드 실행 시에 렉시컬 스코프는 실행 컨텍스트와 함께 작동하여 변수 및 함수의 호출에 대한 스코프 규칙을 결정합니다.

참고자료:

  1. Understanding Scope and Context in JavaScript

이 토픽에 대한 더 자세한 내용을 이해하려면 위의 참고 자료를 읽어보시기를 권해드립니다.