• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 JavaScript, TS 게시판 'level2 2강 setTimeout 타이머주는 법' 숙제 질문입니다.

'level2 2강 setTimeout 타이머주는 법' 숙제 질문입니다.

5 글 보임 - 1 에서 5 까지 (총 5 중에서)
  • 글쓴이
  • #48268

    김준범
    참가자
     <script>
    
    
    var n = 4;
    for(i=0;i<5;i=i+1){
     
     n = n - i;
     
    if(n > 0){
    setTimeout(function(){
     document.querySelector('.second').innerHTML="n";
    },1000);
     
    } else {
     document.querySelector('.alert').classList.add('hide');
    }
    };
    
    
    </script>
     
    #48269

    김준범
    참가자
    안녕하세요. 강의 재밌게 잘 보고 있습니다. 과제 내용에 대한 질문입니다.
    인터벌말고 저렇게 짜보았는데요. 제대로 동작하지 않는 이유가 뭘까요? 아무리 봐도 문제를 찾기 힘들어서 질문드립니다.
    #48280

    codingapple
    키 마스터
    저러면 1초후 코드실행해주는타이머가 5개나 생기겠군요
    #48303

    김준범
    참가자
    그럼 for반복문이 실행되어서 만들어진 첫번째 타이머가 1초뒤에 코드를 실행하기도 전에 
    그 다음 2번째, 3번째, 4번째, 5번째 타이머가 순식간에 만들어진다고 생각하면 될까요?
    그렇게 생각한다면 각 타이머가 1초뒤 코드를 실행하기도 전에 n값이 0이 되어버려서 div가 바로 사라져버리는 것 같다는 생각이 들어서,
    
    이번에는 else 이하를 다 삭제해버리고 실행을 해봤는데요,
    n값이 -6이 나왔습니다.ㅠ ㅠ 
    
    결과가 너무 쌩뚱맞은 거 같은데 왜 이럴까요? n값이 1이 나와야하는 것 아닌가요? ㅠ ㅠ
    
    
     
    #48343

    codingapple
    키 마스터
    setTimeout(function(){
     document.querySelector('.second').innerHTML="n";
    },1000);
    네 반복문은 이거 5번 복붙해주는 문법일 뿐입니다 
    
    반복문 i 만들 때 let이 빠졌습니다 
    n 말고 i 변수 그대로 활용하는게 더 쉬울듯요 
    
5 글 보임 - 1 에서 5 까지 (총 5 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠