본문 바로가기

공부 기록/영상 후기

[10분 테코톡] 하루의 실행 컨텍스트

https://youtu.be/EWfujNzSUmw

Record로 JS 호이스팅 이해하기

- 선언문이 마치 최상단에 끌어올려진 듯한 현상. 선언 이전에도 에러가 나지 않고 변수를 참조할 수 있다. => 자바스크립트 엔진이 먼저 전체 코드를 스캔하면서 변수와 같은 정보를 실행 컨텍스트 어딘가에 기록해놓기 때문 => 환경 레코드(Environment Record), 식별자와 식별자에 바인딩된 값을 기록

<변수 호이스팅>

- 생성 단계(Creation Phase) : 실행 컨텍스트 생성, 선언문만 실행해서 환경 레코드에 기록

- 실행 단계(Execution Phase) : 선언문 외 나머지 코드 순차적 실행, 환경 레코드를 참조하거나 업데이트

- 일시적 사각지대(Temporal Dead Zone) : let 또는 const로 선언했을 때 선언 이전에 식별자를 참조할 수 없는 구역

<함수 호이스팅>

- 함수 표현식 : 변수에 함수를 담아서 함수를 선언하는 방식 => 변수 호이스팅과 동일하게 동작

- 함수 선언문 : 선언과 동시에 함수가 생성되어 선언 전에도 함수를 사용할 수 있음

  

Outer로 JS 스코프체이닝 이해하기

- 외부 환경 참조(Outer Environment Reference) : 바깥 렉시컬 환경(정적 환경)을 가리킴

- 식별자 결정(Identifier Resolution) : 코드에서 변수나 함수의 값을 결정하는 것

- 변수 섀도잉 : 동일한 식별자로 인해 상위 스코프에서 선언된 식별자의 값이 가려지는 현상

- 스코프 체인 : 식별자를 결정할 때 활용하는 스코프들의 연결 리스트

  

실행 컨텍스트(Execution Context) 정리

- 코드를 실행하는 데 필요한 환경(코드 실행에 영향을 주는 조건이나 상태)을 제공하는 객체

- 코드를 실행할 때 식별자 결정을 더욱 효율적으로 하기 위한 수단