본문 바로가기

JavaScript

[JavaScript] 스코프와 실행 컨텍스트

Scope(스코프)                                                         

 스코프란?  변수의 유효범위로 함수가 정의될때 생성된다. 

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

outer(a);
console.log(a);

 위의 함수를 예시로 스코프에 대해 알아보자! 아래는 각 코드 라인별로의 스코프가 변화하는 모습이다.

 

            line 0 : 전역

            line 2 : 함수 outer이 선언되었으므로, outer로 변경

            line 3 : 함수 inner이 선언되었으므로, inner로 변경

 

 이때 프로그램이 실행되면서 변수의 값을 찾아야 할 경우, 스코프를 거슬러 올라가며 변수의 값을 찾아간다.

 

 

 

Execution context(실행 컨텍스트)                                                         

 실행 컨텍스트란?  실행되는 코드덩어리는 의미하며, 함수가 실행될때 생성된다. 실행 컨텍스트는 호이스팅, this 바인딩 등 함수가 실행될때 필요한 정보들을 담고 있다.

 위의 프로그램을 통해 이야기 해보자면, outer() 함수를 불러올때 outer 컨텍스트가 생성되며 inner() 함수를 불러올때 inner 컨텍스트가 생성된다.