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

home2 게시판 JavaScript, TS 게시판 for 과 let 변수지정

for 과 let 변수지정

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

    홍명인
    참가자
    선생님 for 문에서 let에서 헤메고있는 멋쟁이 제자입니다. var 선언을 이해 후 한번더 조언을 구하겠습니다.
    
    우선 제가 헷갈리는 부분은 let 변수지정은 사용될 수 있는범위가 {} 로 알고있는데 for 문에서 let의 지정 범위 입니다.
    
    for(let i = 0; i<3; i++){
    document.querySelectorAll('.tab-button')[i].addEventListener('click',function(){
    document.querySelectorAll('.tab-button')[0].classList.remove('orange')
    document.querySelectorAll('.tab-button')[1].classList.remove('orange')
    document.querySelectorAll('.tab-button')[2].classList.remove('orange')
    document.querySelectorAll('.tab-button')[i].classList.add('orange')
    document.querySelectorAll('.tab-content')[0].classList.remove('show')
    document.querySelectorAll('.tab-content')[1].classList.remove('show')
    document.querySelectorAll('.tab-content')[2].classList.remove('show')
    document.querySelectorAll('.tab-content')[i].classList.add('show')
     })}
    1. let  선언은 for 반복문을 수행할때마다
    {let i =0} , {let i = 1}, {let i = 2} 이렇게 수행 되는것 같습니다. 맞을까요?
    
     2. 그렇다면 for(i = 0; i<3; i++) 여기서 i++ 은 어떻게 이전의 i의 값을 알고 i=i+1 을 수행할까요 ?
    let은 괄호{} 범위 밖에서 사용될 수 없는데요.. (아래처럼 사용되는건 불가능 함!)
    {let I = 0}
    {let I = I++}
    {let I = I++}
    제발 한번 도와주십시오!
    #43261

    codingapple
    키 마스터
    for { 
      let i = 0; i<3; i++
      { i = 0 & 이벤트리스너 }
      { i = 1 & 이벤트리스너 }
      { i = 2 & 이벤트리스너 }
    }
    대충 이렇게 생각합시다
    #43278

    홍명인
    참가자
    감사합니다 선생님 혹시그럼 for 반복문을 풀이해보면 어떻게 나올까요..?
    선생님 께서 말씀하신대로 확인을 해보려고 코드를 아래와 같이 작성해봤는데..
    예상값과 다른것같아서요
    function a(){
        let first = 0;
        setTimeout(() => {
            first = 1
            console.log('1번항목 = '+first)
                setTimeout(() => {
                       console.log('1번항목 - 내용 = '+first)
                }, 0);
            }, 0);
        setTimeout(() => {
        first = 2
        console.log('2번항목 = ' +first)
         }, 0);
    }
    
    위 코드가 선생님께서 작성해주신 코드랑 같은 방식이라고 생각해 실행해봤는데
    {first = 0 이벤트리스너}
    {first = 1 이벤트리스너}
    {first = 2 이벤트리스너}
    
    생각했던 값은 아래와 같은데.. {
    1번항목 = 1
    2번항목 = 2
    1번항목 - 내용 = 1 }
    
    실제 실행내용은 아래와 같아서요ㅠ
     {1번항목 = 1
     2번항목=2
     1번항목 - 내용 = 2 }
    
    어떻게 동작하는걸까요..? 
    
    혹시 이건아닐까 하고 아래와같이 코드를 짜봐도 수행이 안되고..
    function a(){
        let first = 0;
            setTimeout(() => {
            first = frist++}, 0);}
    
    for let 을 사용하게 된다면 어떻게 작동하는지가 궁금합니다!
    let I =0 여기서 I 의 값은 별도로 저장되어 for 반복을 할때마다 let 으로 선언을 하는건지..
    그게아니라면 무엇인지 ㅠㅠ 알려주십쇼 master!
    #43308

    codingapple
    키 마스터
    중첩된 setTimeout 실행될 때 i 변수를 찾아서 넣으려고할텐데 
    가장가까운건 2라서 그런듯요
    #43310

    홍명인
    참가자
    그런데 ㅠㅠ for(let)으로 코드를 짜면 왜 2 가 아니라 1일까요..
    
    늦은시간까지..답변감사합니다.
    #43338

    codingapple
    키 마스터
    무엇이 1입니까
6 글 보임 - 1 에서 6 까지 (총 6 중에서)
  • 답변은 로그인 후 가능합니다.

About

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

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

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