유효범위(Scope)
프로그래밍 언어에서 유효범위는 변수와 매개변수의 접근성과 생존 기간을 제어한다
유효범위는 이름들이 충돌하는 문제를 덜어주고 자동으로 메모리를 관리하기 때문에 중요하다
var foo = function() {
var a = 3, b = 5;
var bar = function() {
var b = 7, c = 11;
// 이 시점에서 a는 3, b는 7, c는 11
a += b + c;
// 이 시점에서 a는 21, b는 7, c는 11
};
// 이 시점에서 a는 3, b는 5, c는 정의되지 않음
bar();
// 이 시점에서 a는 21, b는 5
};자바스크립트의 블록 구문은 마치 블록 유효범위를 지원하는 것처럼 보이지만 불행히도 블록 유효범위가 없다
대신 자바스크립트는 함수 유효범위가 있다. 즉 함수 내에서 정의된 매개변수와 변수는 함수 외부에서는 유효하지 않다
반면에 이렇게 내부에서 정의된 변수는 함수 어느 곳에서도 접근할 수 있다
자바스크립트는 블록 유효범위를 지원하지 않기 때문에 함수에서 사용하는 모든 변수를 함수 첫 부분에 선언하는 것이 최선이다
Last updated
Was this helpful?