앞에서 작성한 반복문에서 letvar로 바꾸면 어떻게 될까요?

    const number = [1, 3, 5, 7];
    for (var i = 0; i < number.length; i++) { 
      setTimeout(() => {
        console.log(number[i]);
      }, 1000 * (i + 1));
    }

    단순히 var로 바꿨을 뿐인데 결과가 완전히 달라집니다. 콘솔에 undefined만 네 번 출력됩니다. varlet은 무엇이 다르길래 이런 현상이 일어날까요?

    이번에는 number[i] 대신 i를 콘솔에 출력해 봅시다.

    const number = [1, 3, 5, 7];
    for (var i = 0; i < number.length; i++) { 
      setTimeout(() => {
        console.log(i);
      }, 1000 * (i + 1));
    }
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.