어휘적 환경(Lexical Environment)

2023. 3. 20. 19:43HTML, Javascript, CSS

- 전역 Lexical 환경

코드 실행 시 변수와 함수들이 올라가는 환경

 

- 내부 Lexical 환경

함수 실행 시 함수의 매개변수, 함수 내의 지역 변수와 내부 함수들이 올라가는 환경

어떠한 함수 실행 시 그 함수에 대한 내부 Lexical 환경이 생성됨

내부 Lexical 환경은 호출된 상위의 Lexical 환경을 참조함 = 현재 Lexical 환경에 없는 변수를 참조하려고 하면 상위의 Lexical 환경을 찾아보고, 거기도 없으면 더 위로 올라가며 전역 Lexical 환경까지 찾아보며 참조

 

- JavaScript에서

코드 실행 시 선언한 변수와 함수들이 Lexical 환경에 먼저 올라감(호이스팅)

이 때 let으로 선언된 변수는 초기화가 되지 않은 채로 올라가기 때문에 선언 전에 사용이 불가능 하지만 함수는 function으로 초기화 되어 올라가기 때문에 선언 전에 사용 가능(let변수 선언 후 초기화 안 해도 사용은 가능 undefined로)