변수의 유효 범위: 지역변수와 전역변수

Ji Hyeok Im·2023년 2월 27일
0

Javascript

목록 보기
2/17

지역 변수(Local Variable)

실행 블록 { } 안에서 선언된 변수는 그 실행 블록 내에서만 사용된다.

로컬 변수란, 함수 내에서 var 식별자; 실행문;으로 선언된 변수를 의미한다.

함수 내의 if, while, else, for 문의 실행블록에 선언된 변수는 해당 문장의 블록에 대한 로컬변수가 된다.

<script>

var myValue = 2;

if (myValue == 2) {
    var myName = "홍길동";
    document.write("myName: " + myName + "<br>");
} else {
    myName = "슈퍼맨";
    document.write("myName: " + myName + "<br>");
}
document.write("myName: " + myName + "<br>");

</script>

실행 결과:
myName: 홍길동
myName: 홍길동

여기서 myName은 if 문 내에서 선언된 지역변수이고 이론상 지역변수는 해당 실행블록 밖에서는 사용하지 못하므로 결과가 undefined로 나와야 하지만 Javascript에서는 밖에서도 불러올 수 있음을 확인할 수 있다.

전역 변수(Public Varialbe)

함수 바깥에서 var 식별자; 실행문; 으로 선언된 변수로서 script 태그 사이에 있는 모든 코드에서 사용할 수 있다. 웹 브라우저에 해당 페이지가 유지되는 동안 메모리에 존재한다.

<script>

var myValue = 10;

function localNum() {
    var num = 30;

    document.write("전역변수 myValue: " + myValue + "<br>");
    document.write("지역변수 num: " + num + "<br>");

    myValue = 500;
    num = 700;
    document.write("값 변경 후 전역변수 myValue: " + myValue + "<br>");
    document.write("값 변경 후 지역변수 num: " + num + "<br>");
}

localNum();
document.write("전역변수 myValue " + myValue + "<br>");
document.write("지역변수 num: " + num + "<br>");

</script>

실행 결과:
전역변수 myValue: 10
지역변수 num: 30
값 변경 후 전역변수 myValue: 500
값 변경 후 지역변수 num: 700
전역변수 myValue 500
ReferenceError: num is not defined

함수 바깥에서 선언된 변수 myValue를 전역변수라 하며, 함수의 실행이 끝나도 값이 바뀌어 있는 상태로 남아 있음을 확인할 수 있다.

반면 변수 num은 함수 localNum() 안에서 선언된 지역변수이기 때문에 함수 실행의 종료와 함께 소멸한다.

때문에 localNum(); 다음 기술한 document.write() 메서드에 대해서는 변수가 선언되지 않았다는 오류 메시지와 함께 출력되지 않은 것을 확인할 수 있다.

profile
Programming study

0개의 댓글