일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 변수 호이스팅
- 정적 메서드
- 클래스에서 정의한 메서드의 특징
- 문법적 설탕
- 렉시컬 환경
- 전역 객체 생성
- 인스턴스 반환
- 정적 메서드와 프로토타입 메서드의 차이
- 클로저
- 프로토타입 메서드
- var 키워드로 선언한 변수의 문제점
- 환경 레코드
- 중첩 함수
- 원시 값과 객체의 비교
- 함수 레벨 스코프
- 상위 스코프 결정
- 정의 방식
- 외부 함수
- 전역 코드 평가
- 변수 중복 선언 허용
- 전역 변수의 문제점
- 인스턴스 초기화
- 일급 객체
- 상태 은닉
- 새로운 객체 생성 메커니즘
- 인스턴스 생성과 this 바인딩
- 전역 코드 실행 종료
- Number의 정적 메서드
- 전역 코드 실행
- 즉시 실행 함수
- Today
- Total
목록렉시컬 환경 (2)
YJSTAR

렉시컬 환경(Lexical Environment)은 식별자와 식별자에 바인딩된 값, 그리고 상위 스코프에 대한 참조를 기록하는 자료구조로 실행 콘텍스트를 구성하는 컴포넌트다. 실행 콘텍스트 스택이 코드의 실행 순서를 관리한다면 렉시컬 환경은 스코프와 식별자를 관리한다. 렉시컬 환경은 키와 값을 갖는 객체 형태의 스코프(전역, 함수, 블록 스코프)를 생성하여 식별자를 키로 등록하고 식별자에 바인딩된 값을 관리한다. 즉, 렉시컬 환경은 스코프를 구분하여 식별자를 등록하고 관리하는 저장소 역할을 하는 렉시컬 스코프의 실체다. 실행 콘텍스트는 LexicalEnvironment 컴포넌트와 VariableEnvironment 컴포넌트는 하나의 동일한 렉시컬 환경을 참조한다. 이후 몇 가지 상황을 만나면 Variab..

함수는 전역에서 정의할 수도 있고 함수 몸체 내부에서 정의할 수도 있다. 함수 몸체 내부에서 함수가 정의된 것을 '함수의 중첩'이라 한다. 그리고 함수 몸체 내부에서 정의한 함수를 '중첩 함수(nested function)', 중첩 함수를 포함하는 함수를 '외부 함수(outer function)'라고 한다. 함수는 중첩될 수 있으므로 함수의 지역 스코프도 중첩될 수 있다. 이는 스코프가 함수의 중첩에 의해 계층적 구조를 갖는다는 것을 의미한다. 다시 말해, 중첩 함수의 지역 스코프는 중첩 함수를 포함하는 외부 함수의 지역 스코프와 계층적 구조를 갖는다. 이때 외부 함수의 지역 스코프를 중첩 함수의 상위 스코프라 한다. 앞의 "전역 스코프와 지역 스코프" 그림에서 지역은 outer 함수의 지역과 inner..