- 스코프란?
일종의 규칙이다. 유효범위를 뜻하는 단어로서, 식별자가 사용될 수 있는, 스스로가 속한 범위를 말한다. 스코프 자체로 범위라는 구분 단위를 제공해주기 때문에, 식별자 이름이 같더라도 범위가 다르면 중복이 허용되므로 이러한 방식으로 충돌을 방지한다.
- 스코프의 구분
자바스크립트에서의 스코프는 두 가지로 나눌 수 있다. 또한, 모든 변수는 스코프를 기본으로 가지므로 스코프에 따라 변수 구분도 가능하다.
1) 전역 스코프(Global scope) - 전역 변수(Global variable) : 모든 곳에서 참조가(해당 식별자의 사용) 가능하다.
자바스크립트는 보통의 언어와 달리 시작점을 갖지 않기 때문에 쉽게 외부에 전역 변수 선언이 가능하다. 다만, 이러한 편리함이 도리어 전역 변수의 남용을 유발하여 코드를 예측하기 어렵게 만들 수 있으므로 사용을 자제하는 것이 권장된다.
2) 지역 스코프(Local scope, Function-level scope) - 지역 변수(Local variable) : 함수의 코드 블록 내 선언되어, 함수 자신과 하위 함수에서 참조가(해당 식별자의 사용) 가능하다.
- 함수 레벨 스코프
자바스크립트만의 특징이다. 타언어들처럼 블록 레벨 스코프가 아닌 함수 레벨 스코프를 사용한다. 쉽게 말해 블록 레벨 스코프가 코드 블록을 기준으로 정해진다면 함수 레벨 스코프는 함수를 기준으로 스코프가 정해지는 것이다. 따라서 블록 레벨 스코프는 코드 블록 내에 변수 선언 시 지역 변수가 되지만, 함수 레벨 스코프는 이를 전역 변수로 인식한다.
또한 함수 레벨 스코프는 전역 변수와 지역 변수의 이름이 중복되는 경우 지역 변수의 실행을 우선순위로 갖는다.
참고 : poiemaweb 웹사이트
'TIL' 카테고리의 다른 글
<HTML> 시맨틱 태그 (0) | 2021.12.27 |
---|---|
<자바스크립트 Javascript> 스코프(Scope) (2) (0) | 2021.12.26 |
<자바스크립트 Javascript> 객체 사용 시 주의점 (0) | 2021.12.24 |
<CSS> 반응형 웹 디자인 - 메뉴바 (3) (0) | 2021.12.23 |
<자바스크립트 Javascript> 객체 리터럴 (0) | 2021.12.22 |