지역변수와 전역변수
- 지역변수
- 함수 안에서 var를 사용해서 선언한 변수
- 함수가 끝나면 소멸됨
- 전역변수
- 함수 밖에서 만들어진 모든 변수
- 함수 안에서 var 없이 만들어진 변수
- 함수가 끝나도 메모리에 남아 있음
- 지역변수 사용
function test1() {
var i = 10; // 지역변수
document.write(i);
}
test1();
// document.write(i); 에러 발생!!
- 전역변수 사용
var j; // 전역변수
function test2() {
j = 200;
document.write(j + '<br>');
}
test2();
function test3() {
document.write(j + '<br>');
}
test3();
/* [출력결과]
200
200 */
전역변수의 var를 생략할 경우, 변수의 선언과 동시에 초기화해야 함: 가능하나 권장하지 않음
// a; 에러 발생!!
a = 10;
function test4() {
a = 100;
document.write(a + '<br>');
}
test4();
- 함수 내에서 var를 명시하지 않고 변수를 선언하면 전역변수가 됨
function test5() {
m = 300; // 전역변수
document.write(m + '<br>');
}
test5();
function test6() {
document.write(m + '<br>');
}
test6();
/* [출력결과]
300
300 */
let 과 const
- Block Level Scope(영역)를 가짐
- let : 변수를 정의할 때 사용
- const : 상수를 정의할 때 사용
function test() {
let a = 10;
document.write(a + '<br>');
// let a = 20; // 오류 발생!! : 이미 선언한 변수명과 동일한 변수명으로 선언할 수 없음
// document.write(a+'<br>');
const b = 20;
document.write(b + '<br>');
// b = 50; // 오류 발생!! : 상수에 값을 다시 할당 할 수 없음
// document.write(b + '<br>');
}
test();
/* [출력결과]
10
20 */
'Web > JavaScript' 카테고리의 다른 글
[JavaScript] 콜백 함수, 내부 함수, 클로저 (0) | 2021.08.05 |
---|---|
[JavaScript] 함수의 매개변수, 가변인자, return과 break (0) | 2021.08.05 |
[JavaScript] 선언적 함수, 익명 함수, 호이스팅 (0) | 2021.08.05 |
[JavaScript] 조건문, 반복문 (0) | 2021.08.05 |
[JavaScript] 연산자 (0) | 2021.08.05 |