TIL

Jony·2024년 5월 7일

[TIL]

목록 보기
16/46
post-thumbnail

Javascript

실행컨텍스트(스코프,변수,객체 ,호이스팅)

  • 실행할 코드에 제공할 환경 정보들을 모아놓은 객체이다.

  • 해당 객체에는 변수 객체, 스코프 체인, this 정보가 담겨있다.

  • 자동으로 전역 컨텍스트가 생성된 후 함수 호출시마다 함수 컨텍스트가 생성되고, 컨텍스트 생성이 완료된 후에 함수가 실행

Execution Context(실행 컨텍스트)

  • 스택 & 큐

  • 콜스택(call stack)

    동일 환경에 있는 코드를 실행할 때 필요한 환경 정보들을 모아 컨텍스트를 구성하고 이것을 위에서 말한 stack의 한 종류인 콜스택에 쌓아 올린다.

  • 구성
    	1. 전역공간
    	2. eval()함수
    	3. 함수(흔히 실행컨텍스트를 구성하는 방법)
// 1번
var a = 1;
function outer() {
 function inner() {
  console.log(a); //undefined	
var a = 3;
	}
// 2번
inner(); 
 console.log(a);
}
// 3번
outer(); 
console.log(a);

콜 스택에 쌓이는 실행 컨텍스트에 의해 순서가 보장됨
코드실행 → 전역(in) → 전역(중단) + outer(in) → outer(중단) + inner(in) → inner(out) + outer(재개) → outer(out) + 전역(재개) → 전역(out) → 코드종료

  • 담기는 정보


    1) VariableEnvironment
    식별자 정보(record)를 가지고 있다.
    var a = 3 <- var a를 의미
    2) 외부환경(outer)를 가지고 있다.
    3)선언 시점 LexicalEnvironment의 snapshot
  • LexicalEnvironment
    1) VariableEnvironment와 동일하지만, 변경사항을 실시간으로 반영
  • ThisBlinding
    1) this 식별자가 바라봐야할 객체

profile
알면 알수록 모르는 코태계

0개의 댓글