자료 구조 <Data Structure>/JavaScript

실행 컨텍스트? 렉시컬 환경이 뭐지?

실버사서 Silver Librarian 2021. 7. 10. 16:45

정확히는, 어떨 때 쓸 수 있는가? 이다. Prototype 이해하고 나니, 더 큰 폭탄이 있었다.

 

실행 컨텍스트 스택. 이 글의 주제는, 스택이란 개념에서 시작된다.

 

전역 객체 생성 -> 전역 코드 평가 -> ... 생성, 평가, 생성 평가,

그 후 때가 되면 기존 로딩물을 종료해가며 원점으로 복귀.

 

로 보인다. 다만, 이건 통째로 설명 과정을 생략하니 가능한 것.

근데, 이 개념은 생각 보다 굉장히 복잡하다.

거의 경제학의 미시경제학에서 다루는 이론의 일부와 맞먹는 수준이다.

 

코드의 제어권이 어떨 때 이동하는지, 에 대해 초점을 두는 것이 옳아 보인다.

 

한 줄로 요약을 해봐야 겠다...가 아니었다!

이건 logic 을 설명한 diagram 표를 보는게 그나마 낫다.

 

그나저나, 이 렉시컬(모름!) 환경은 대체 무슨 말일까?

임시 방편:

 

변수의 유효범위와 클로저

 

ko.javascript.info

 

 

실행 컨텍스트(렉시컬 환경과 this)

ES3의 '중첩 스코프'와 비교하여 ES5의 '렉시컬 환경'개념에 대해 알아보고, 나아가 this바인딩에 대해서도 살펴본다.

velog.io

 

그 외:

논리적으로 이어서 생각 해보면 이해가 되긴 한데...이 부분, 하나로 정리하기엔 너무 복잡하다!

Prototype 다음으로 반드시 복습 해야 할 부분에는 '실행 컨텍스트' 개념이 추가 되어야 겠다.

 

현 시점에서 이 '실행 컨텍스트' 개념은, 무언가 세부적으로 스코프 및 자료 실행 영역을 설정하기 위한 인스톨 과정이라고 생각 해 둬야 겠습니다.

 

개인이 생각하는 난이도 : Prototype 보다도 더 어렵고 복잡함. 소위 생각하는 '이건 대체 어떻게 마스터하지?' 같은 것.

개인이 생각하는 적용 범위 : 아마도 JS 자료 구조의 핵심. Prototype 은 선행되어야 함.

접근법: 굉장히 암울해 보이는 난공불략 수준의 내용이지만, 큰 틀만 염두하며 접근하는게 좋아 보임.

힌트: console.log method 가 실행 된 최종 결과 값이 어째서 그런 건지가 이해되면 여긴 안심해도 될 듯.