실행 컨텍스트

2023. 8. 14. 11:38·프로그래밍 언어/javascript
728x90

실행 컨텍스트

  • 실행 컨텍스트란?
    • 자바스크립트가 실행되는 환경이다.
    • 원래 js는 인터프리터 언어였지만 성능 문제로 인해 JIT로 컴파일러로 실행하는데 js가 실행이 될 때 가장 먼저 실행되는 것이 전역 실행 컨텍스트를 생성합니다.
    • 전역으로 컨텍스트가 생성되는데 각 변수, 함수에 대해서 각각의 컨텍스트가 생성됩니다.
      • 그 과정에서, 함수 실행 및 콜백 기다림이 발생을 합니다.

​

const title = 'Hello'; const firstFunction = () => { let a = 1; a += 3; return a; } const secondFunction = () => { const b = 20; return b; }
 

여기 코드에서 3개의 컨텍스트가 생성됩니다.

  1. 전역 실행 컨텍스트
  2. firstFunction 실행 컨텍스트
  3. secondFunction 실행 컨텍스트

​

콜스택 : 자바스크립트 엔진에서 실행 컨텍스트가 쌓여 있는 스택

const title = 'Hello'; const firstFunction = () => { let a = 1; const b = secondFunction(2,3) a = a + b; return a; } const secondFunction = (x, y) => { const c= 5; return c; } const x = firstFunction();
 

실행이 되면 글로벌 실행 컨텍스트를 만들고 스택이 쌓입니다.

firstFunction();이 실행이 될 때 firstFunction() 스택이 쌓이고

secondFunction() 실행 컨텍스트가 콜스택에 쌓입니다.

return c;가 끝나면 스택에서firstFunction() pop()이 되고

return a; 가 끝나면 스택에서 firstFunction()도 pop()이 됩니다.

마지막 const x = firstFunction();이 실행되면서 글로벌 컨텍스트도 콜스택에서 빠지게 됩니다.

728x90
반응형
저작자표시 (새창열림)

'프로그래밍 언어 > javascript' 카테고리의 다른 글

호이스팅, 스코프  (1) 2023.08.14
javascript 특징  (0) 2023.08.14
JIT 컴파일러  (0) 2023.08.14
javascript engine과 runtime  (1) 2023.08.14
javascript(자바스크립트) 기초, 개발 환경 구축, 기초 함수 소개  (1) 2022.02.15
'프로그래밍 언어/javascript' 카테고리의 다른 글
  • 호이스팅, 스코프
  • javascript 특징
  • JIT 컴파일러
  • javascript engine과 runtime
pink_salt
pink_salt
유익함을 주는 개발자가 되도록 keep going
  • pink_salt
    KeepGoingForever
    pink_salt
  • 전체
    오늘
    어제
    • 분류 전체보기 (117)
      • Project (7)
      • WEB study (3)
        • WEB(Springboot) (10)
        • Git, GitLab (13)
        • Clean code (1)
        • FrontEnd (3)
      • Study (21)
        • Algorithm (19)
        • 면접 준비 (2)
      • Cloud Computing (2)
        • AWS (2)
      • 프로그래밍 언어 (35)
        • Java (29)
        • Python (0)
        • javascript (6)
      • 운영체제 (0)
        • Linux (0)
      • Database (4)
        • MongoDB (8)
        • SQL (8)
      • 애플리케이션 개발 (1)
        • Android (1)
      • AI (1)
        • Deeplearning (1)
        • machinelearning (0)
      • Daily (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    SW
    SWEA
    python
    코딩강의
    대외활동
    Query
    자바
    Git
    codepresso
    무료코딩교육
    코드프레소
    티스토리챌린지
    dp
    BFS
    MongoDB
    IT교육
    오블완
    개념
    spring boot
    객체지향
    git branch
    언어
    무료IT교육
    백준
    Database
    빅오표기법
    Java
    코딩이러닝
    gitlab
    mysql
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
pink_salt
실행 컨텍스트
상단으로

티스토리툴바