몽탁이의 개발일기
유효범위 (Scope) 본문
유효 범위는 변수의 수명 범위입니다.
var vscope ='global';
function fscope(){
var vscope='local';
}
fscope();
alert(vscope);
결과)
알림 창에 global 출력
var vscope ='global';
function fscope(){
vscope='local';
}
fscope();
alert(vscope);
결과)
알림창에 local 출력
위 두예제는 같아 보이지만 다른 부분이 있습니다.
함수 안에 변수를 var을 사용했느냐 안 했느냐 차이가 있습니다.
여기서 확인할 수 있는건 함수 밖에서 선언된 vscope는 전역 변수이고
함수 안에서 var vscope라고 선언된 변수는 지역변수가 됩니다.
그래서 첫 번째 예제의 결과는 함수 안의 vscope는 지역변수이기 때문에 전역 변수의 값이 바뀌지 않고
global을 출력하게 됩니다.
두 번째 예제의 결과를 보면 함수 안의 vscope는 전역 변수를 가리키고 있습니다. 그렇기 때문에 전역 변수의 global
이라는 값을 local로 바꾸게 되어 local이 출력이 됩니다.
지역변수와 전역 변수가 나타나게 된 이유는 협업을 하다 보면 서로 변수 이름은 같지만 사용용도가 다를 경우가
생깁니다.
예를 들어 나는 right라는 변수를 오른쪽이라는 의미로 사용하는 변수였지만 다른 사람은 right를 권리라는 의미로
사용할 수도 있습니다.
이런 경우를 대비해 right를 지역변수로 사용하면 서로 충돌 날일이 없어 협업하는데 문제가 생기지 않게 됩니다.
아직 저처럼 개발 초보자인 분들은 전역 변수와 지역변수를 구분을 해서 사용하기에는 어렵습니다.
초보 개발자들은 웬만해서는 지역변수를 위주로 사용하는 것을 권장한다고 합니다.
마지막으로 자바스크립트에서 전역 변수를 객체지향 프로그래밍에 맞게 사용하는 방법이 있습니다.
var MYAPP = {}
MYAPP.calculator ={
'left' : null,
'right' : null
}
MYAPP.coordinate = {
'left' : null,
'right' : null
}
이런 식으로 먼저 전역 객체를 만들어 그 안에 전역으로 사용하고 싶은 변수들은 선언하면 됩니다.
이러면 협업하는데 누가 만들었는지 누가 어떤 변수를 필요하는지 한눈에 볼 수 있고 유지보수하는 데 있어서 아주 유용한 방법입니다.
'Javascript 정리' 카테고리의 다른 글
클로저 사용시 주의사항 (0) | 2020.06.29 |
---|---|
클로저(Closure) (0) | 2020.06.29 |
자바스크립트에서의 함수 (0) | 2020.06.29 |
유효범위의 대상 (0) | 2020.06.26 |
자바스크립트의 정규표현식 (RegExp) (0) | 2020.06.26 |