실행 컨텍스트, variable environment, lexical environment 개념
chanto11
·2023. 4. 11. 23:42
실행 컨텍스트 (Execution Context)
- 전역 실행 컨텍스트 : <script> 태그를 마주치면 생성. 실행시 필요한 정보들이 담겨있다.
- 함수 실행 컨텍스트 : 함수 단위 실행 환경, 함수의 호출로 call stack에 쌓이게 된다.
- variable environment : 모든 식별자에 대한 정보를 담고 있는 객체.
라이프 사이클 : 실행 컨텍스트 생성시 생성 -> 실행 컨텍스트 제거시 제거 - lexical environment : 유효한 식별자들에 대한 정보를 담고 있는 객체.
라이프 사이클 : 실행 컨텍스트 생성시 생성 -> 스코프 체인이 유지되는 동안 존재
※ lexical environment 객체는 가비지 컬렉터에 의해 제거됩니다.
예제
function outer() {
var a = 10;
function inner() {
console.log(a);
}
return inner; // 2. variable environment 제거
}
var foo = outer(); // 1. variable environment, lexical environment 생성
foo(); // 10 // 3. lexical environment 유지
// [Global]-[lexical environment]-...-[lexical environment]-...[lexical environment]
'Javascript' 카테고리의 다른 글
[typescript] event.target에서 value 프로퍼티를 못 찾는 에러 해결방법 (0) | 2022.12.12 |
---|---|
JS 함수형 프로그래밍 _map, _filter 함수 만들어보기 (0) | 2021.06.23 |
고차함수, 콜백함수, 커리함수 코드로 이해하기 (0) | 2021.03.16 |
insertAdjacentHTML 과 innerHTML 차이 알아보기 (0) | 2021.02.24 |
webWorker 맛보기 (0) | 2021.02.23 |