생활 코딩/JAVASCRIPT
유효범위
준승박
2021. 8. 17. 19:22

유효범위
1) 전역변수와 지역변수
전역변수 : 애플리케이션 전역에서 접근 가능한 변수
query와 같은 라이브러리에서 모듈화 기법으로 많이 사용한다.
그러나 자바스크립트에서 해당 변수는 전역변수이다.
예제1) 지역변수와 전역변수의 구분1
var vscope = 'global'; //전역변수
function fscope(){
alert(vscope);
}
fscope(); //global
지역변수 : 함수 내에서만 접근 가능한 변수
예제2) 지역변수와 전역변수의 구분2
var vscope = 'global';
function fscope(){
var vscope = 'local'; //지역변수
var lv = 'local value'; //지역변수
alert(vscope);
}
fscope(); //local
alert(lv); //undefined
for문의 i는 전역변수기 때문에 해당 코드는 계속 실행되다가 브라우저가 멈춘다.
예제3) 지역변수와 전역변수의 구분3
function a(){
i=0;
}
for(var i =0; i < 5; i++){ // i는 전역변수
a();
document.write(i);
}
MYAPP 전역변수 하나만 생성하고, 그 안에 필요한 전역변수를 정의한다.
예제4) 전역변수 안쓰는 방법1
var MYAPP = {}
MYAPP.calculator = { //객체의 속성(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()); //30
전역변수가 절대 존재하지 않게 개발할 때, 익명함수. 일회성함수를 이용한다.query와 같은 라이브러리에서 모듈화 기법으로 많이 사용한다.
예제6) 자바와의 차이점. for문 안에서의 변수.
for( var i =0; i < 1; i++){
var name= "local no!";
}
alert(name); //local no!
자바는 반복문, 조건문 안에서 선언된 변수를 지역변수 취급하기 때문에 위와 같은 로직으로 실행시키면 에러가 난다.그러나 자바스크립트에서 해당 변수는 전역변수이다.
var i = 5;
function a(){
var i=10;
b();
}
function b(){
document.write(i); //누구의 i일까?
}
a(); //5가 출력된다!