유효범위(scope) : 변수의 수명
var vscope = 'global'; // 전역변수
function fscope() {
var vscope = 'local'; //지역변수
alert(vscope); // local 출력됨.
}
fscope();
불가피하게 전역변수를 사용해야하는 경우, 하나의 객체를 전역변수로 만들고 객체의 속성으로 변수를 관리.
var MYAPP = {} // 전역변수
MYAPP.calculator = {
'left': null,
'right': null
}
MYAPP.coordinate = {
'left': null,
'right': null
}
MYAPP.calculator.left = 10;
MYAPP.calculator.right = 20;
JS는 함수에 대한 유효범위만 제공. ({}와 같은 블록에 대한 유효범위는 제공하지 않음)
JS는 함수가 선언된 시점에서의 유효범위를 갖음. (정적 유효범위, 렉시컬)
var i = 5;
function a(){
var i = 10;
b();
}
function b() {
document.write(i);
}
a(); // 5. 사용될때가 아니라 정의될때의 전역변수 사용