JS - 실행컨텍스트

윤우정·2022년 6월 26일
0

실행컨텍스트 - 실행할 코드에 제공할 환경정보들을 모아놓은 객체
실행컨텍스트를 구성하는 방법

  • 전역공간 (자동생성)
  • Eval() (자주사용되지 않음)
  • 함수실행 (우리가 흔히 실행 컨텍스트를 구성하는 방법)

코드 실행시

  1. 동일한 환경에 있는 코드들을 실행할 때, 필요한 환경정보들을 모아 컨텍스트를 구성
  2. 콜 스택(스택은 LIFO(Last In First Out, 후입 선출)의 구조를 가지는 나열 구조)에 쌓아올림
  3. 가장 위에 쌓여있는 컨텍스트와 관련있는 코드들을 실행

활성화된 실행 컨텍스트의 수집정보

  1. Variable Environment
    • 변수, arguments, 그리고 함수선언을 최초로 저장하는데에 쓰임
  2. Lexical Environment
    • Variable Environment 복사본, 차이점은 변경사항이 실시간으로 반영됨
  3. This

Lexical Environment

environment record- 현재 컨텍스트와 관련된 코드의 정보들이 저장.
컨텍스트 내부 전체를 처음부터 끝까지 읽고 순서대로 수집

**호이스팅** - 코드를 실행하기 전 변수선언/함수선언이 해당 스코프의 최상단으로 끌어 올려진 것 같은 현상

스코프체인- 변수의 유효 범위

참고

https://poiemaweb.com/js-execution-context
https://www.zerocho.com/category/JavaScript/post/5741d96d094da4986bc950a0
https://velog.io/@paulkim/e
https://developer.mozilla.org/ko/docs/Glossary/Hoisting
https://velog.io/@oneook/%EC%8A%A4%EC%BD%94%ED%94%84%EC%99%80-%EC%8A%A4%EC%BD%94%ED%94%84-%EC%B2%B4%EC%9D%B8-JavaScript-Basics

추가공부할것

  • 호이스팅
  • 스코프, 스코프체인

0개의 댓글