유효범위

유효범위

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

var vscope = 'global'; //global 이라는 값을 할당 전역변수 
function fscope(){
    var vscope = 'local' ; // 지역변수
    alert(vscope);
}
fscope(); // local이 출력됨 
var vscope = 'global';
function fscope(){
    var vscope = 'local';
    var lv = 'local variables';
    alert(lv); //지역변수 이기때문에 지역에서만 접근이 가능한다. 
}
fscope();
alert(lv); //undefined
var vscope = 'global';
function fscope(){
    var vscope = 'local';
}
fscope();
alert(vscope);  // global

  • 함수내에 var을 쓰게되면 지역변수가 되기때문에 ​ 👉 global 로 출력이됨

  • var 을 사용하지않고 vscope = 'local' 을 쓴다면 전역변수의 값이 변하기 때문에 👉 local이 출력된다.

전역변수

함수 외부에서 선언된 변수, 👉프로그램 전체에서 접근할 수 있는 변수

지역변수

함수 내부에서 선언된 변수로, 함수가 실행되면 만들어지고 함수가 종료되면 소멸하는 변수 👉 함수 외부에서는 접근할 수 없

전역변수의 사용

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

전역변수를 사용하고 싶지 않다면 -> 익명함수를 호출

유효범위의 대상 (함수)

🌟 자바스크립트는 함수에 대한 유효범위만을 제공한다. 많은 언어들이 블록(대체로 {,})에 대한 유효범위를 제공하는 것과 다른 점이다.

정적 유효범위

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

🌟 사용될때가 아니고 메소드가 정의될때 전역변수가 사용되게 된다.

Last updated

Was this helpful?