5. 로컬변수와 글로벌변수
변수에는 Scope 즉 범위, 영역이 있다.
변수에는 즉! 유효한 범위가 있다는 말이다.
이 말이 더 어려운데;;;
변수는 로컬 변수(지역 변수)가 있고
글로벌 변수(전역 변수) 가 있다.
로컬 변수는 정해진 범위에서만 사용할 수 있고
글로벌 변수에서는 코드를 작성하고 있는 어느 곳에서나 사용할 수 있다.
먼저 글로벌 변수의 예시를 보자.
아래 그림처럼 변수 x를 선언해주고 x값을 콘솔에 출력하라는 명령을 내렸다.
let x = 3
console.log(x);
결과는 어떻게 나올까? 당연히 3이 출력된다.
그렇다면
만약 글로벌 변수를 선언하고 똑같은 x를 함수 내에서 다르게 선언하면 어떻게 될까?
//글로벌 변수(Global Variable)
let x = 1
//블록문(Block Statement) 내에 있는 로컬 변수(Local Variable)
function anyFunction(){
let x = 2;
console.log(x);
}
anyFuntion();
console.log(x);
함수 내에서 변수를 선언하면 로컬 변수가 되는데 로컬 변수가 있는지 확인하고 없으면 글로벌 변수를 확인하게 된다.
anyFunction()을 호출하면 함수 내에 있는 로컬 변수 x 값이 출력된다.
그리고 console.log(x)를 실행할 때는 함수 내에 있는 로컬 변수 x가 아니라 글로벌 변수 x = 1을 출력한다.
정리해보면
2
1
이렇게 출력된다.
프로그래밍을 할 때 로컬 변수냐, 글로벌 변수냐는 정말 중요하다.
예시를 살펴보자
function myFunction() {
let x = "로컬변수";
x = "변수종류";
}
myFunction();
console.log(x);
결과는 어떻게 출력될까?
일단
let x = '로컬변수' 여기서 x는 로컬변수다.
그리고 바로 아래 x 도 로컬변수다.
일단 myFuntion()을 실행하면 결국 x는 '변수 종류'라는 값이 할당되는데 출력하라는 것이 없으니 출력이 안된다.
그리고 console.log(x)에서는 글로벌 변수를 출력하라는 건데 글로벌 변수는 없다.
그래서 아무것도 출력이 안된다.
즉 이 프로그램을 실행하면 오류가 난다.
왜냐? 글로벌 x 선언이 안되었기 때문에!!
로컬 변수인지, 글로벌 변수인지는 꼭 확인해야하고
코드를 작성할 때도 구분을 잘 해주어야 한다!
매우매우 중요한 부분이다!!
다음 글에서는 '상수' 에 대해 정리해보자~!
'프로그래밍 > Javascript' 카테고리의 다른 글
JavaScript 기초 : 제어문 1. if문 사용법(if문 중첩) (0) | 2020.09.07 |
---|---|
JavaScript 기초: 추상화 6. 상수 (0) | 2020.09.07 |
JavaScript 기초 : 추상화 4. 함수 옵셔널 파라미터 (0) | 2020.09.07 |
JavaScript 기초 : 추상화 3. return문 이해하기 (2) | 2020.09.07 |
JavaScript 기초 : 추상화 2. 함수 정의와 호출 (0) | 2020.09.07 |