전역 변수(Global Variable)는 프로그램 전체 범위에서 접근할 수 있는 변수로, JavaScript 코드 어디에서든 정의하고 사용할 수 있습니다.
지역 변수와 전역 변수의 우선순위
함수 내부에서는 지역 변수가 같은 이름의 전역 변수보다 우선합니다. 만약 함수 안에서 전역 변수와 동일한 이름을 가진 지역 변수나 매개변수를 선언하면, 그 전역 변수는 사실상 가려지게(shadowing) 됩니다. 따라서 의도치 않은 버그를 방지하려면 변수 이름을 신중하게 관리해야 합니다.
전역 변수 선언 방법
일반적으로 전역 변수는 다음과 같이 함수 외부에 var 키워드로 선언합니다.
<html>
<body onload = checkscope();>
<script>
var myVar = "global"; // 전역 변수 선언
function checkscope() {
document.write(myVar);
}
</script>
</body>
</html>window 객체를 활용한 권장 방식
위 예제는 전통적인 방식이지만, 더 명확하고 안전한 모범 사례(best practice)는 window 객체의 속성으로 전역 변수를 정의하는 것입니다. 브라우저 환경에서 window는 최상위 객체이므로, 이를 통해 선언된 변수는 코드 전체에서 일관되게 접근할 수 있습니다.
<html>
<body onload = checkscope();>
<script>
window.myVar = "global"; // window 객체로 전역 변수 선언
function checkscope( ) {
alert(myVar);
}
</script>
</body>
</html>이처럼 window.myVar 형태로 선언하면 해당 변수가 전역 속성임을 명시적으로 드러낼 수 있어, 코드의 가독성과 유지보수성이 향상됩니다. 다만 전역 변수는 남용할 경우 이름 충돌이나 예측하기 어려운 동작을 유발할 수 있으므로, 가능하면 최소한으로 사용하는 것이 좋습니다.