티스토리 뷰
스코프는 자바스크립트를 포함한 모든 프로그래밍 언어의 기본적이며 중요 개념. 스코프란, 식별자가 유효한 범위를 말함.
식별자 결정 : 이름이 같은 두개의 변수 중 어떤 변수를 참조해야할지 결정하는 것... 따라서 스코프란 식별자를 검색할 때 사용하는 규칙이라고도 할 수 있음
이름이 같은 변수라고 해도 스코프가 다르면 서로 다른 별개의 변수임
* var 키워드는 중복선언이 가능하므로 주의할 것
스코프는 전역과 지역으로 구분할 수 있음
전역 - 코드의 가장 바깥영역, 전역 스코프, 전역 변수
지역 - 함수 몸체 내부, 지역 스코프, 지역 변수
전역변수는 어디서든지 참조할 수 있지만, 지역변수는 자신의 지역 스코프와 하위 지역 스코프에서만 유효하다.
스코프 체인 : 스코프는 하나의 계층적 구조로 연결되며, 모든 지역 스코프의 최상위 스코프는 전역 스코프다.
스코프 체인에 따라, 절대로 하위 스코프로 내려가면서 식별자를 검색하는 일은 없다.
상위 스코프에서 유효한 변수는 하위 스코프에서 자유롭게 참조할 수 있지만, 하위 스코프에서 유효한 변수를 상위 스코프에서 참조할 수 없다는 것을 의미함
함수 레벨 스코프
: 코드 블록이 아닌, 함수에 의해서만 지역 스코프가 생성됨에 유의할 것
함수 레벨 스코프 : var 키워드로 선언된 변수는 오로지 함수의 코드 블록만을 지역 스코프로 인정함
((ex) if문 내부에 있는 var 키워드는 전역변수, function 키워드 내에있는 애들은 지역변수!)
렉시컬 스코프
: 함수를 어디서 호출했는지가 아니라, 함수를 어디에 정의했는지에 따라 상위 스코프가 결정됨
즉, 함수의 상위 스코프는 언제나 자신이 정의된 스코프이며, 호출된 위치는 어떠한 영향도 주지 않음에 유의할 것