개발일지/TIL

[TIL] 210721 오늘 공부는 실행 컨텍스트 + 호이스팅 + 콜스택

햄❤️ 2021. 7. 22. 18:08
반응형

자바스크립트 스터디를 위한 자료 준비. 이번 챕터는 실행 컨텍스트 중에서 생성 과정에 대해 공부했다. 
실행 컨텍스트가 실행할 코드에 대한 환경 정보들을 모아놓은 객체라는 말이 와닿지 않았는데,

콜스택을 직접 그려보면서, 표로 EC(creation phase와 execution phase)에 뭐가 담기는지 그려보니, 식별자(변수 등) 및 this 등이 EC에 담기는구나를 알 수 있었다.

 

그리고 자바스크립트의 콜스택은 실행 컨텍스트가 어떻게 담기는지, 자료 구조상 함수가 쌓이고 가장 top에 있는 코드부터 실행되고, 결국 전역 컨텍스트가 사라지면서 어플리케이션이 종료되는 과정까지 그림으로 그려보았다.

 

호이스팅은 var의 선언부과 함수 선언식을 통째로 끌어올리는 것이다. 함수의 실행 컨텍스트가 생성되는 생성단계에서 호이스팅이 진행된다.

호이스팅을 피하기 위해 ES6에 도입된 let,const 그리고 함수 표현식을 사용하는 것이 좋다.

만약 다른 개발자가, 함수가 위에 정의된지 모르고 동일한 함수명을 뒤에 선언해서 사용할 경우, 호이스팅 때문에 후에 선언된 앞부분에도 영향을 미칠 수 있기 때문이다.  물론 함수명을 잘 정해야 하는 것도 있지만 선언된 이후부터 호출되는 것이 여럿이 작업할 때 안전할 수 있다는 뜻이된다. 

자세한 내용은 나의 블로그에서 확인할 수 있다.

[JavaScript] 스터디 13일차_ 2강_실행컨텍스트와 콜스택

 

다음에는 스코프, 스코프 체인에 대해서 좀 더 공부해봐야겠다. 

 

 

 

728x90
반응형