[javascript] 실행컨텍스트

진세오·2025년 8월 13일
post-thumbnail

실행컨텍스트

실행컨텍스트(Execution Context)는 실행할 코드에 제공할 환경정보들을 모아놓은 객체로 자바스크립트에서 가장 중요한 핵심 개념 중 하나입니다. 자바스크립트에서는 실행컨텍스트가 활성화 되는 시점에 따라서 선언된 변수를 끌어올리고, 외부환경 정보를 구성하고, this의 값을 설정하는 등의 동작을 수행합니다.

콜 스택 (Call Stack)

실행 컨텍스트는 콜스택에 담겨져서 하나하나 수행하게 됩니다. 이때 스택은 자료구조의 한 종류로, 입구와 출구가 하나인 우물같은 형태의 자료구조를 말합니다. a,b,c,d 순서로 저장됐다면 d,c,b,a 순으로 꺼내야 합니다. 따라서 실행 컨텍스트도 제일 마지막에 저장된 컨텍스트부터 활성화 됩니다.

실행 컨텍스트는 동일한 환경에 있는 코드들을 실행할 때 필요한 환경정보들을 모아 컨텍스트를 구성하고, 이를 콜 스택에 저장했다가, 가장 마지막에 저장된 컨텍스트와 관련있는 코드를 실행하여 전체 코드의 환경과 순서를 보장합니다. 이 환경을 구성하는 방법 즉, 실행 컨텍스트를 구성할 방법은 1) 자동으로 생성되는 전역공간 2) eval() 함수, 3) 그 외 함수 등이 있습니다.

eval함수는 문자열에 적힌 내용을 코드로 해석하여 실행하는 함수로 보안에 취약하기 때문에 사용하지 않는 함수입니다. 따라서 함수로 만들어지는 실행컨텍스트에 대해 살펴보겠습니다.

좀 더 자세한 내용을 원하신다면 아래의 글을 참고해도 좋을 것 같습니다.

https://developing-move.tistory.com/230

함수에서의 실행컨텍스트

var a = 1;
function outer() {
  function inner() {
    console.log(a);
    var a = 3;
  }
  inner();
  console.log(a, '2');
}
outer();
console.log(a,'3');
  

이미지로 정리하면 아래와 같습니다.

호이스팅

https://velog.io/@minhyeon18/Javascript-var-let-const-%EB%B3%80%EC%88%98%EB%93%A4

0개의 댓글