반응형
종종 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를 전역변수로 볼수 있겠네요.
결론:
변수는 선언된 위치를 통해 지역과 전역으로 나뉩니다
이상입니다.
* 코드 보시기가 어려우시면 아래 링크를 참조해주세요
'개발' 카테고리의 다른 글
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 |