유효범위

유효범위(Scope)는 변수의 수명을 의미한다.

var vscope = 'global';
function fscope(){
    alert(vscope);
}
fscope();     

//global

함수 밖에서 변수를 선언하면 그 변수는 전역변수가 된다. 전역변수는 에플리케이션 전역에서 접근이 가능한 변수다. 다시 말해서 어떤 함수 안에서도 그 변수에 접근 할 수 있다.

var vscope = 'global';      // 전역변수 (자바 전역에서 접근)
function fscope(){
    var vscope = 'local';   // 지역변수 (함수 중괄로안 접근)
    alert('함수안 '+vscope);
}
fscope();
alert('함수밖 '+vscope);

/*
함수안 local
함수밖 global
*/

지역변수의 유효범위는 함수 안이고, 전역변수의 유효범위는 에플리케이션 전역인데, 같은 이름의 지역변수와 전역변수가 동시에 정의되어 있다면 지역변수가 우선한다는 것을 알 수 있다.

변수를 선언할 때는 꼭 var을 붙이는 것을 습관화해야 한다. 전역변수를 사용해야 하는 경우라면 그것을 사용하는 이유를 명확히 알고 있을 때 사용하도록 하자.

유효범위의 효용

지역변수의 사용

전역변수의 사용

전역변수의 사용

불가피하게 전역변수를 사용해야 하는 경우는 하나의 객체를 전역변수로 만들고 객체의 속성으로 변수를 관리하는 방법을 사용한다.

전역변수를 사용하고 싶지 않다면 와 같이 익명함수를 호출함으로서 이러한 목적을 달성할 수 있다.

유효범위의 대상 (함수)

자바스크립트는 함수에 대한 유효범위만을 제공한다.

자바스크립트의 지역변수는 함수에서만 유효하다.

정적 유효범위

자바스크립트는 함수가 선언된 시점에서의 유효범위를 갖는다. 이러한 유효범위의 방식을 정적 유효범위(static scoping), 혹은 렉시컬(lexical scoping)이라고 한다.

Last updated

Was this helpful?