JS Deep Dive 실행컨텍스트 - 함수 코드 평가

제론·2022년 6월 14일
0

[JS 공부기록] TIL ✨

목록 보기
5/12

함수 코드 평가

  1. 함수 실행 컨텍스트 생성

  2. 함수 렉시컬 환경 생성

    2.1. 함수 환경 레코드 생성

    2.2. this 바인딩

    2.3. 외부 렉시컬 환경에 대한 참조

  • 전역 코드 실행된 함수의 외부 렉시켤 환경 참조는 전역 렉시컬 환경의 참조

  • 함수 정의 위치에 따라 상위 스코프 결정됨

  • 함수 평가하고 생성시 [[Environment]] 내부 슬롯이 만들어지는데 이것이 상위 스코프를 나타냄

  • 함수 안에서 호출된 console 식별자는 현재 함수 렉시컬 환경에서 검색X

    -> 외부 렉시컬 환경 참조가 가리키는 상위 스코프로 이동하여 검색 결국, 전역 렉시컬 환경까지!

  • 블록 레벨 스코프

    1. var 키워드 -> 오직 함수 코드만 지역 스코프로 인정
    2. let, const 키워드 -> 모든 코드 블록을 지역 스코프로 인정
    • 전역 코드 평가시에는 블록 레벨 스코프에 따라 환경 레코드를 구분해줘야함. 하지만 함수 코드 평가시에는 그럴 필요 없음 - var, let, const 모두 함수 지역 스코프로 인정

    • let 변수를 if 문에서 정의했을 때

      -> 선언적 환경 레코드를 갖는 렉시컬 환경을 새롭게 생성 기존 렉시컬 환경 대체

      -> 코드 블록에 대한 독립적인 렉시컬 환경을 생성 => 클로저 개념으로 이어짐

profile
Software Developer

0개의 댓글