CODEDRAGON ㆍDevelopment/JavaScript, jQuery, ...
지역변수 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>'); //에러 발생
출력결과
함수 안에서 var를 명시한 변수는 지역변수이기 때문에 함수 종료 후 메모리에서 소멸되어 함수 종료 후에 다시 지역변수 호출하면 오류 발생
var 없이 전역 변수 선언
소스 코드
p;
function test6(){
p = 50;
document.write(p + '<br>');
}
test6();
출력결과
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>
출력결과
'Development > JavaScript, jQuery, ...' 카테고리의 다른 글
선언적 함수를 매개변수로 받는 함수 (0) | 2022.01.30 |
---|---|
return (0) | 2022.01.30 |
선언적 함수 vs 익명 함수 (0) | 2022.01.30 |
익명 함수 생성 (함수 표현식 방식) (0) | 2022.01.30 |
function() 생성자 함수를 통한 함수 생성 (0) | 2022.01.28 |