설명
전역 변수(global variables)와 지역 변수(local variables)는 변수의 범위에 따라 구분된다.
전역 변수(Gloabal Variables)
- 모든 부분에서 접근할 수 있는 변수이다.
- 실행 중에 계속해서 메모리에 상주하므로 메모리 소비에 영향을 줄 수 있다.
- 사용을 최소화해야 하며, 너무 많은 전역 변수는 코드를 이해하기 어렵게 만들고 디버깅을 어렵게 할 수 있다.
지역 변수(Local Variables)
- 특정 함수나 블록 내에서만 접근 가능한 변수이다.
- 해당 함수나 블록이 실행될 때 생성되고, 함수 또는 블록의 실행이 끝나면 메모리에서 해제된다.
- 외부에서 접근할 수 없기 때문에 코드의 안전성과 보안성을 높일 수 있다.
우선순위
함수 내부 : 전역 < 지역
var n = '홍길동'; // 전역변수
function test(){
var n = '임꺽정'; // 지역변수
console.log(n);
}
test(); // 임꺽정 - 지역변수
함수 내부에서 선언된 지역 변수의 우선순위가 더 높기 때문에 함수 내의 지역 변수 'n'의 값이 출력된다.
var n = '홍길동'; // 전역변수
function test() {
var n = '임꺽정'; // 지역변수
}
console.log(n); // 홍길동 - 전역변수
함수 내부에서는 지역 변수가 우선되며, 함수 외부에서는 전역 변수가 사용된다. 따라서 'n'의 값은 '홍길동'이다.
var i = 10;
for(var i=0; i<5; i++) {
console.log(i);
}
console.log('i=' + i);
0
1
2
3
4
i=5
반복문 내에서 선언된 변수는 해당 반복문이 속한 험수의 범위 내에서 변수로 취급되고, 반복문 외부에서도 접근할 수 있다.
이 때문에 반복문에서 선언된 변수가 전역 변수와 같은 동작을 보이게 되는데, 이를 반복문 범위 내에서의 변수 취급이라고 할 수 있다.