본문 바로가기
프로그래밍/Javascript

JavaScript 기초 : 추상화 5. 로컬변수와 글로벌변수

by 조크리 2020. 9. 7.
반응형

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 선언이 안되었기 때문에!!

 

로컬 변수인지, 글로벌 변수인지는 꼭 확인해야하고

코드를 작성할 때도 구분을 잘 해주어야 한다!

 

매우매우 중요한 부분이다!!

 

다음 글에서는 '상수' 에 대해 정리해보자~!

 

 

 

 

 

 

반응형