728x90
스코프
스코프는 식별자가 유효한 범위를 말하며, 유효한 범위란 다른 코드가 식별자를 참조할 수 있는 범위입니다. 식별자의 스코프는 식별자가 선언된 위치에 의해 결정됩니다.
렉시컬 환경
렉시컬 환경은 코드가 어디서 실행되며 주변에 어떤 코드가 있는지를 의미합니다. 이를 구현한 것이 실행 컨텍스트이며, 모든 코드는 실행 컨텍스트에서 평가되고 실행됩니다.
스코프 종류
스코프는 전역과 지역으로 나뉩니다.
전역 스코프
전역 스코프를 갖는 전역 변수는 어디서든지 참조가 가능합니다.
지역 스코프
지역 스코프를 갖는 지역 변수는 자신의 지역 스코프와 하위 지역 스코프에서 유효합니다.
스코프 체인
스코프 체인은 스코프가 계층적으로 연결되는 것을 말합니다. 자바스크립트 엔진은 상위 스코프로 이동하며 선언된 변수를 검색합니다.
변수 선언 키워드와 스코프
var 키워드
- 중복 선언을 허용합니다.
- 함수 레벨 스코프입니다. 함수가 아닌 코드 블록(if, for, while, try/catch) 등에서 선언할 경우 전역 변수로 선언됩니다.
let, const 키워드
- 중복 선언 허용하지 않습니다.
- 블록 레벨 스코프입니다.
렉시컬 스코프
자바스크립트는 함수가 호출된 위치가 아니라 정의한 위치에 따라 함수의 상위 스코프를 결정합니다. 이러한 방식을 렉시컬 스코프(lexical scope) 또는 정적 스코프(static scope)라고 합니다.
참고자료
- 모던 자바스크립트 Deep Dive
'Language > JavaScript' 카테고리의 다른 글
생성자 함수에 의한 객체 생성 (0) | 2025.03.15 |
---|---|
프로퍼티와 어트리뷰트 (0) | 2025.03.13 |
함수 (0) | 2025.03.13 |
원시 값과 객체의 비교 (0) | 2025.03.13 |
객체 리터럴 (0) | 2025.03.13 |