본문 바로가기

개발

지역 변수와 전역 변수 in javascript

반응형

종종 let이 지역변수고, var가 전역변수라고 알고 계시는 분들이 계십니다.(초창기 저라고는 안하겠습니다ㅎㅎ)

그런데 지역과 전역은 선언방식이 아닌 유효 범위(선언 위치)에 따라 구분됩니다.

 

 

지역 변수:  

함수 내부에서 정의된 변수

 

let a = 'a'

var func = () => {
	let a1 = 'a1';
    var a2 = 'a2';
}

console.log(a)
console.log(a1)
console.log(a2)

위 코드를 실행하면 a만 콘솔이 찍히고, a1과 a2는 not defined에러가 발생합니다. a1과 a2는 func() 안에서 선언되기 때문입니다.

그렇다면 func()를 실행하고 콘솔을 찍으면 어떻게 될가요?

 

let a = 'a';

var func = () => {
	let a1 = 'a1';
    var a2 = 'a2';
};
func()
console.log(a);
console.log(a1);
console.log(a2);

역시 a1과 a2는 not defined에러가 발생합니다. 이를 통해, 변수는 선언된 위치를 통해 유효성을 부여받음을 알수있게 됐습니다.

즉, 함수 내부에서 선언된 a1 과 a2는 지역 변수임을 알수 있습니다 

 

 

 

전역 변수: 함수 외부에서 정의된 변수

전역변수는 지역변수를 제외한 변수라 보시면 됩니다.

 

let a = 'a';

var func = () => {
	let a1 = 'a1';
    var a2 = 'a2';
};
console.log(a);
console.log(a1);
console.log(a2);

위 예시에서는 a를 전역변수로 볼수 있겠네요.

 

 

 

 

 

결론:

변수는 선언된 위치를 통해 지역과 전역으로 나뉩니다

 

 

 

이상입니다.

* 코드 보시기가 어려우시면 아래 링크를 참조해주세요

medium.com/%EB%8F%84%EA%B9%A8%EB%B9%84-%EC%9D%B4%EC%95%BC%EA%B8%B0/%EC%A7%80%EC%97%AD-%EB%B3%80%EC%88%98%EC%99%80-%EC%A0%84%EC%97%AD-%EB%B3%80%EC%88%98-in-javascript-8b414a9ad1a9

 

'개발' 카테고리의 다른 글

port already issue in linux  (0) 2021.02.24
유용한 공백  (0) 2021.02.21
kt에서 포트 포워딩 하는 방법  (0) 2021.02.01
내부 ip, 외부 ip, 포트 포워딩  (0) 2021.02.01
IE에서 xhr(ajax) cache 문제  (0) 2021.01.06