스코프는 프로그래밍 언어의 기본 개념. 식별자 자신을 참조할 수 있는 유효한 범위
스코프 체인
- 중첩 함수와 같이 지역 스코프도 중첩될 수 있다. (지역이 곧 함수 몸체를 말하고, 지역은 지역 스코프를 만들기 때문)
- 모든 스코프는 하나의 계층적 구조로 연결 되어있다.
- 최상위 스코프는 전역 스코프다.
- 참조하는 코드의 스코프에서 시작하여 상위 스코ㅡ로 이동하면서 선언된 변수를 검색한다.
- 스코프 체인은 실행 컨텍스트의 렉시컬 환경을 단방향으로 연결한 것이다. 전역 렉시컬 환경은 코드가 로드되면 곧바로 생성되고 함수의 렉시컬 환경은 함수가 호출되면 곧바로 생성된다.
- 함수도 식별자에 할당되기 때문에 변수를 검색할 때 사용하는 규칙 보다는 식별자를 검색하는 규칙이 좀 더 적합
함수 레벨 스코프
- 대부분의 프로그래밍 언어는 블록 레벨 스코프
- 자바 스크립트는 함수 레벨 스코프
렉시컬 스코프
var x = 1;
function foo() {
var x = 10;
bar();
}
function bar() {
console.log(x);
}
- 위 예제의 출력은 bar 함수의 스코프에 따라 결정된다.
- 함수를 어디서 호출 했는지에 따라 스코프를 결정하는 동적 스코프
- 함수를 어디서 정의 했는지에 따라 스코프를 결정하는 정적 스코프 (렉시컬 스코프)
- 자바스크립트를 비롯한 대부분의 프로그래밍 언어는 정적 스코프를 따른다.
'기술 서적 > 하루 30분 모딥다' 카테고리의 다른 글
하루 30분 모던 자바스크립트 딥 다이브. let, const 키워드 (0) | 2023.06.16 |
---|---|
하루 30분 모던 자바스크립트 딥 다이브. 전역 변수의 문제 (0) | 2023.06.14 |
하루 30분 모던 자바스크립트 딥 다이브. 함수 (0) | 2023.06.03 |
하루 30분 모딥다. 어트리뷰트 (0) | 2023.06.01 |
하루 30분 모딥다. DOM 조작 (0) | 2023.05.31 |