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 컨텍스트가 생성된다.
'JavaScript' 카테고리의 다른 글
[JavaScript] var과 let, const (0) | 2019.10.31 |
---|---|
[JavaScript] 콜백함수(Callback Function)와 비동기 처리 (0) | 2019.10.08 |
[JavaScript] 함수 선언문과 함수 표현식 (0) | 2019.10.04 |
[JavaScript] Hoisting(호이스팅) (0) | 2019.10.04 |
[JavaScript] 기본형과 참조형 (0) | 2019.10.04 |