1. let, var, 실행컨텍스트, 스코프, 비동기, lexical scope(정적 스코프)

let, var의 관계가 궁금해지기 시작했다

  • helpdesk에 질문을 했다. https://github.com/codestates/help-desk/issues/677
  • 구글에 '실행컨텍스트' 검색을 했다.
  • 유튜브에 '실행컨텍스트', '스코프'에 관한 영상을 봤다. (제로초님)
  • block scope // function scope에 대해 이해했다.
    for(var i = 0; i < 5; i++) {
    setTimeout(() => {
      console.log(i);
      }, 1000 * i)
    }
    // 0초부터 1초마다 5가 찍힐 것이며 총 5가 5번 찍힌다.
    for (let i = 0; i < 5; i++) {
    setTimeout(() => {
      console.log(i);
      }, 1000 * i)
    }
    // 0초부터 1초마다 0, 1, 2, 3, 4 가 찍힌다.
    의 결과값이 무엇인지 안다.

    실행컨텍스트, 클로져, 스코프, 비동기과정과 반복문의 관계에 대해 조금은 이해할 수 있다.

2. this

  • An object that the invoked function points to when executing.
  • this는 함수가 실행될 때 실행되는 방식에 따라 결정된다.
  • 화살표 함수의 this는 정적으로 바인딩된다.
    var obj = {
      i : 10,
      b : () => console.log(this.i, this),
      c : function () {
              console.log(this.i, this);
      }
    }
    // obj.b, obj.c의 결과를 안다면 화살표함수의 this를 이해한것이라고 봐도 된다.