인프런 커뮤니티 질문&답변

찡태님의 프로필 이미지
찡태

작성한 질문수

모던 자바스크립트(ES6+) 기본

4. let 변수와 var 변수 차이

let 변수와 var 변수를 비교하는 예제 질문입니다.

작성

·

202

2

 {
    let k = 0;
    node.children[k].onclick = function(event) {
      event.target.style.backgroundColor = "yellow";
      console.log(k);
    }
  }
  {
    let k = 1;
    node.children[k].onclick = function(event) {
      event.target.style.backgroundColor = "yellow";
      console.log(k);
    }
  }
  {
    let k = 2;
    node.children[k].onclick = function(event) {
      event.target.style.backgroundColor = "yellow";
      console.log(k);
    }
 }

선생님 예제에서 for문에서 k 가 증가할때마다 k의 블록 스코프가 생성된다고 이해했습니다. 이해가 잘되지 않는 반복문은 풀어서 쓰면 이해가 잘됬어서 위의 코드처럼 반복문을 풀어썼는데 저렇게 이해하는게 맞는건가요? 

블록으로 지정하지 않고 k를 선언하니까 var 로 선언했을 때와 같이 3으로 출력되서 let k 를 각각의 블록으로 묶었더니 예제와 같이 동작하지만 for문을 위와같은 형태로 풀어써본적이 없어서 질문드립니다!

답변 2

2

찡태님의 프로필 이미지
찡태
질문자

감사합니다!!

2

김영보님의 프로필 이미지
김영보
지식공유자

1. 코드처럼 반복문을 풀어썼는데 저렇게 이해하는게 맞는건가요? 
==> 맞습니다.

2. var 로 선언했을 때와 같이 3으로 출력되서
==> 이것도 맞습니다. let과 var의 차이입니다.

지금 정확하게 이해하고 계십니다. 풀어서 논리적으로 정리하려는 접근, 너무 좋습니다. 멋있습니다. 

찡태님의 프로필 이미지
찡태

작성한 질문수

질문하기