함수 유효범위 : 전역변수와 지역변수
유효범위(Scope)는 변수의 수명을 의미한다. 아래의 예제를 보자. 결과는 global이다.
var vscope = "global";
function fscope() {
var vscope = "local";
}
let a = "sc";
console.log(a);
function fscope2() {
var lv = "local variables";
a = "kk";
console.log(a);
}
fscope();
fscope2();
console.log(lv);
console.log(a);
function a() {
let i = 0;
}
for (let i = 0; i < 5; i++) {
a();
document.write(i);
}
document.write(i);
전역변수
let MYAPP = {};
MYAPP.calculator = {
left: null,
right: null,
};
MYAPP.coordinate = {
left: null,
right: null,
};
MYAPP.calculator.left = 10;
MYAPP.calculator.right = 20;
function sum() {
return MYAPP.calculator.left + MYAPP.calculator.right;
}
document.write(sum());
전역변수를 사용하지않을떄
(function () {
let MYAPP = {};
MYAPP.calculator = {
left: null,
right: null,
};
MYAPP.coordinate = {
left: null,
right: null,
};
MYAPP.calculator.left = 10;
MYAPP.calculator.right = 20;
function sum() {
return MYAPP.calculator.left + MYAPP.calculator.right;
}
document.write(sum());
})();
유효범위의 대상 (함수)
for (let i = 0; i < 1; i++) {
let name = "coding everybody";
let key = 123;
}
console.log(name);
console.log(key);
정적유호면위(lexical scoping)
let i = 5;
function a() {
let i = 10;
b();
}
function b() {
document.write(i);
}
a();