function a(){} //선언식
const a = ()=>{} 표현식
this
선언식 같은 경우 this는 전역객체를 가리킨다.
표현식은 상위 스코프의 this를 참조한다. 그래서 콜백함수 내부의 this와 외부함수의 this의 불일치 문제를 해결할 수 잇다.
호이스팅
선언식은 호이스팅이 발생하지만, 표현식은 호이스팅이 발생하지 않는다.
화살표함수는 인스턴스를 생성 할 수 없는 non-constructor다.
중복된 매개변수 이름을 선언 할 수 없다.
화살표 함수는 함수 자체의 this, arugument, super, new.target 바인딩을 갖지 않는ㄷ.
내가 생각에는 콜백함수 내부의 this와 외부함수의 this의 불일치 문제를 해결 해서가 아닐까