인프런 커뮤니티 질문&답변

가도로이님의 프로필 이미지
가도로이

작성한 질문수

몇 줄로 끝내는 인터랙티브 웹 개발 노하우 [초급편]

전역변수

해결된 질문

작성

·

185

0

안녕하세요! 강의듣다가 궁금한 점이 생겨서 질문드립니다!

let i = 0 을 전역변수로 놓았을 때는 콘솔창에 1,2,3,4로 숫자가 계속 증가되서 나오는데

지역변수로 loop()함수 안에 두었을 땐 콘솔창에 1만 계속 찍히더라고요!

너무 기초적인 질문 같은데.. 왜 이렇게 되는건지 궁금해서 질문 남겨요 ㅠㅠ! 

let i = 0

function loop() {
console.log(i += 1);
window.requestAnimationFrame(loop);
}

답변 3

1

코딩일레븐님의 프로필 이미지
코딩일레븐
지식공유자

안녕하세요.

loop() 라는 함수를 계속 실행을 하고 있는데

그 안에서 let i = 0; 을 계속 다시 선언해주니 +1 을 해도 0 -> 1 이 반복되는 겁니다. 

쉽게 풀어 말하면

loop() 실행 -> 이제 i는 0이야 -> 1더해 -> console.log(1) -> 처음으로 돌아가서 반복

위 처럼 i가 리셋이 되는 것이죠.

전역 변수로 하면 i는 0이야 이후로 함수 안에서 더해주니 +1이 계속 되는 겁니다.

0+1 , 1+1, 2+1 ... 이렇게요

0

코딩일레븐님의 프로필 이미지
코딩일레븐
지식공유자

넵 즐거운 하루 보내세요 :)

0

가도로이님의 프로필 이미지
가도로이
질문자

아 완전 이해했어요! 감사합니다 :)

가도로이님의 프로필 이미지
가도로이

작성한 질문수

질문하기