JS (Java Script)

전역변수

GABOJOK 2023. 9. 5. 00:34

전역변수. 

전역에서 쓰이는 변수라는 말. 

 

let name = '홍길동' ;

var age = 30;

보통 이런식으로 많이 사용한다. 

 

 

그런데 이런 방법도 있다. 

window.name = '홍길동';

window.age = 30;

 

window.으로 선언하는 방법이 더 권장된다. 

이유는 변수가 정말 많아졌을때 한눈에 이건 전역변수구나 라고 알 수 있기 때문이다

 

추가로 일반적인 변수 선언 방법으로 변수를 만들때에

var 키워드를 쓰면 해당 변수가 window 에도 보관이 된다. 

let 키워드를 쓰면 window에 해당 변수 보관되지 않음.

 

 

추가로

var는 전역변수 이기 때문에 for 반복문 안에서 변수 설정을  var 키워드로 하게 되면 이런 문제가 생긴다.

 

for(var i = 1; i<6; i++){

     setTimout(function(){

         console.log(i)

     }, i*1000)

};

이런 코드가 있을때에, 이 코드는 작동하지 않는다. 

var로 변수를 선언했기 때문에, 전역변수로 저장되고, 

setTimout 함수가 시작하기 전에 for문은 이미 끝나버린다. 

그리고 전역변수로 저장된 for문의 마지막 숫자로 결과값을 도출한다. 

 

그래서 이런 문제를 해결하기 위해 let 키워드를 사용한다. 

let 키워드는 사용범위가 {} 이 안이기 때문에 

아직 첫번째 변수값이 for문의 {} 안에서 기다리고 있다. 

그래서 오류 없이 잘 작동하도록 할 수 있는것!