var vscope = "global"; // 전역변수
function fscope(){
var vscope = 'local'; //지역변수
alert(vscope);
}
function fscope2(){
alert(vscope);
}
fscope(); // local 이 출력된다.
fscope2(); // global 이 출력된다.
var vscope = "global"; // 전역변수
function fscope(){
var vscope = 'local'; //지역변수
}
alert(vscope);
예시의 코드는 global이 출력 된다. local은 지역변수이기 때문에 바깥에 있는 alert에 적용이 안돼기 때문이다.
var vscope = "global";
function fscope(){
vscope = 'local';
alert(vscope);
}
fscope();
위의 예시에서는 vscope이 지역변수가 아니라 전역변수를 재정의한것이다. local이 출력된다.
function a (){
i = 0;
}
for(var i = 0; i < 5; i++){
a();
document.write(i);
}
위의 코드를 실행하면 오류가 난다. for 구문 안에 있는 var i = 0 이 전역변수로 적용된다.
var MYAPP = {}
MYAPP.calculator = { // 전역변수.속성1
'left' : null,
'right' : null
}
MYAPP.coordinate = { // 전역변수.속성2
'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(){
var 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으로 감싼 익명함수를 만든다.
var i = 5;
function a(){
var i = 10;
b();
}
function b(){
document.write(i);
}
a();