• 카테고리

    질문 & 답변
  • 세부 분야

    프론트엔드

  • 해결 여부

    해결됨

전역변수

21.03.21 12:06 작성 조회수 137

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

ㅇㅅㅇ님의 프로필

ㅇㅅㅇ

질문자

2021.03.21

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