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

home2 게시판 JavaScript, TS 게시판 var, let 질문입니다.

var, let 질문입니다.

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

    최용준
    참가자

    "JavaScript 입문과 웹 UI개발"에서 "탭기능 만들며 배우는 for 반복문 2"강의 질문입니다.

    for문안 변수선언에서 var은 안되고 let만 되는 이유를 스코프랑 호이스팅으로 설명을 하면

    var의 경우는 함수 레벨 스코프이기 때문에 호이스팅이 되면서 자동적으로 최상단에서 선언이 되어져 i=3인 상태에서 진행되는 것이고

    let은 블록 레벨 스코프(지역)이고 for문도 블록(지역)으로 인식되기 때문에 for문이 시작될 때 for문이라는 블록 안에서 선언이 되어져서 0부터 시작 가능한 건가요??

    #34162

    codingapple
    키 마스터

    3인상태에서 진행되진 않습니다 반복문 돌 때 0 1 2 3 이렇게 변합니다 

    호이스팅이랑은 별상관은 없고 범위랑 더 상관있을듯요 

    #34212

    최용준
    참가자

    그럼 간단하게 정리하면

    1. var로 선언되어 있는 경우 함수 레벨 스코프 즉 전역으로 선언

    2. 이벤트리스너 안에 있는 콜백함수에는 참조 불가하므로 for문만 진행되어져 var i = 3 으로 되어진 상태

    3. 버튼 클릭시 이벤트리스너(콜백함수)가 소속되어 있는 블록 레벨 스코프(for)에는 i라는 변수가 없기 때문에 스코프 체인 속성으로 인해 전역변수인 i값(3)을 가져와서 버튼3을 누른 것으로 인식되어짐

    맞는 건가요?? ㅠㅠ

    #34223

    codingapple
    키 마스터

    버튼3을 누른것으로 인식된건 아니고 버튼셀렉터의 i 자리까지는 0 1 2가 각각 잘 박혀서 실행됩니다

    이벤트리스너 안의 코드들은 항상 i = 3으로 실행되겠군요 

4 글 보임 - 1 에서 4 까지 (총 4 중에서)
  • 답변은 로그인 후 가능합니다.

About

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

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

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