• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

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

20.08.01 12:49 작성 조회수 134

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

찡태님의 프로필

찡태

질문자

2020.08.01

감사합니다!!

2

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

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

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