자바스크립트를 포함한 모든 프로그래밍 언어의 기본적이며 중요한 개념
<aside> ✅ 모든 식별자는 자신이 선언된 위치에 의해 다른 코드가 식별자 자신을 참조할 수 있는 유효 범위가 결정됨
스코프 = 식별자가 유효한 범위 = 자바스크립트 엔진이 식별자를 검색할 때 사용하는 규칙 (어떤 변수를 참조할지 결정)
</aside>
<aside> 💡 자바스크립트 엔진은 코드 실행시 코드의 문맥 고려 코드의 문맥은 렉시컬 환경으로 이루어짐 이를 구현한 것이 실행 컨텍스트 모든 코드는 실행 컨텍스트에서 평가되고 실행됨
렉시컬환경
코드가 어디서 실행되며 주변에 어떤코드가 있는지
</aside>
프로그래밍 언어에서는 스코프를 통해 식별자인 변수 이름의 충돌을 방지하여 같은 이름의 변수를 사용할 수 있게 함
⇒ 스코프 = 네임 스페이스
코드 구분
전역 (코드의 가장 바깥 영역)
전역 스코프
전역 변수
어디서든지 참조 가능
지역 (함수 몸체 내부)
지역 스코프
지역 변수
자신의 지역 스코프와 하위 지역 스코프에서 유효
⇒ 변수는 자신이 선언된 위치(전역/지역)에 의해 스코프(자신이 유효한 범위)가 결정됨