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를 이해한것이라고 봐도 된다.