Search

용석 - 렉시컬 스코프

렉시컬 스코프
클로저 → 렉시컬 스코프를 빼고 얘기할 수 없다
연관성이 뭔가요
클로저: 외부함수를 참조하는 내부함수
내부 함수 입장에서 상위 스코프: 외부함수
모든 함수는 클로저다: 전역 변수를 참조하는 함수들은 모두 상위스코프를 참조하고 있기 때문에 클로저 함수라고 할 수 있다.
렉시컬 스코프: 함수가 처음 선언이 될 때 상위 스코프에 있는 메모리를 참조할 때 어떻게 참조할 지 정하는 방식
정적스코프(렉시컬 스코프): 함수가 선언되었을 때 상위 스코프 참조
왜 렉시컬일까요: 사전에 정의된, 어휘의
스코프가 뭐에요
프로그래밍이 실행되는 범위
글로벌 스코프
호이스팅
코드가 거대해졌을 때 같은 전역 변수를 사용하는 경우 늦게 정의된 변수의 값으로 덮어쓰여진다.
이런 문제를 해결하기 위해 스코프로 구분을해서 변수의 사용 범위를 제한한다.
자바스크립트는 정적 스코프를 사용한다.
동적 스코프: 함수가 실행되는 환경에서 함수를 호출한 곳에서 상위 스코프 참조
어떤 스코프를 참조하게 될지 모른다.
실행 콘텍스트
전역 환경 실행 콘텍스트
this: 전역에서 사용되는 객체 (호스트 객체: global, window 등)
전역 변수로 정의하면 글로벌 객체 안의 멤버로 등록된다.
렉시컬 환경
어디서 선언되었으며 상위 스코프가 무엇인지 저장
실행 콘텍스트에 대한 정의가 렉시컬 환경이다. → 좀 더 공부하신다고 함
자바스크립트는 렉시컬 환경을 사용하고, 선언되는 환경이 중요하다.