지역변수 vs 전역변수
지역변수 | 함수 안에서 var를 사용해서 선언한 변수
함수가 끝나면 소멸
함수 안에서 var를 명시한 변수는 지역변수이기 때문에 함수 종료 후 메모리에서 소멸됨
함수 종료 후에 다시 지역변수 호출하면 오류 발생 |
전역변수 | 함수 밖에서 만들어진 모든 변수
(중요)함수 안에서 var 없이 만들어진 변수var를 명시하지 않고 전역변수 선언하는 것은 권장하지 않음
함수가 끝나도 메모리에 남아 있음 |
학습 내용
- 함수 안에서 var로 명시한 지역 변수 호출
- 함수 밖에서 var로 명시한 지역 변수 호출
- 전역 변수 호출
- 전역 변수 재 호출
- 함수 안에서 var 없이 변수 선언(전역 변수)
- var없이 전역 변수 명시 1, 2, 3
함수 밖에서 var로 명시한 지역변수 호출
소스 코드
function test1(){
//지역
변수
var i =
10;
document.write(i +
'<br>');
}
//함수
호출
test1();
document.write('<br>함수
종료
후: ' + i + '<br>'); //에러
발생
출처: <https://github.com/10zeroone/study_javascript/blob/master/WebContent/ch04-function/03.html>
함수 안에서 var를 명시한 변수는 지역변수이기 때문에 함수 종료 후 메모리에서 소멸되어 함수 종료 후에 다시 지역변수 호출하면 오류 발생
var 없이 전역 변수 선언
소스 코드
p;
function test6(){
p =
50;
document.write(p +
'<br>');
}
test6();
출처: <https://github.com/10zeroone/study_javascript/blob/master/WebContent/ch04-function/03.html>
var를 명시하지 않고 전역변수를 만들 때 선언만 하고 초기화 하지 않은 상태에서 함수 안에서 초기화해서 호출하면 오류 발생함
전체 소스
<html>
<head>
<meta
charset="UTF-8">
<title>지역변수 vs 전역변수</title>
<script type="text/javascript">
document.write('지역
변수
호출 ==================<br>');
function test1(){
//지역
변수
var i =
10;
//지역
변수
호출
document.write(i +
'<br>');
}
//함수
호출
test1();
//함수
밖에서
지역
변수
호출
//document.write('<br>함수
종료
후: ' + i + '<br>'); //에러
발생
/* 함수
안에서 var를
명시한
변수는
지역변수이기
때문에
함수
종료
후
메모리에서
소멸됨
함수
종료
후에
다시
지역변수
호출하면
오류
발생 */
document.write('<br> 전역
변수
호출 ==================<br>');
var j; //전역
변수
function test2(){
j =
300;
document.write(j +
'<br>');
}
test2();
document.write('<br> 전역
변수
재
호출 ==================<br>');
function test3(){
document.write(j +
'<br>');
}
test3();
document.write('<br> 함수안에서 var 없이
변수
선언(전역
변수) ==================<br>');
function test4(){
//전역
변수, 권장하지
않음
m =
30;
document.write('함수
안에서
호출: '
+ m +
'<br>');
}
test4();
document.write('함수
종료
후
호출: '
+ m +
'<br>');
document.write('<br> var없이
전역
변수
명시1 ==================<br>');
n =
40;
function test5(){
document.write(n +
'<br>');
}
test5();
document.write('<br> var없이
전역
변수
명시2 ==================<br>');
//var를
명시하지
않고
전역변수를
만들
때
선언만
하고
초기화
하지
않은
상태에서
함수
안에서
초기화해서
호출하면
오류
발생함
//p;
function test6(){
p =
50;
document.write(p +
'<br>');
}
test6();
document.write('<br> var없이
전역
변수
명시3 ==================<br>');
//var를
명시하지
않고
전역변수
선언(권장하지
않음)
//권장하지
않음
//p;
q =
20;
function test7(){
q =
60;
document.write(q +
'<br>');
}
test7();
</script>
</head>
<body>
</body>
</html>
출처: <https://github.com/10zeroone/study_javascript/blob/master/WebContent/ch04-function/03.html>
댓글을 달아 주세요