화살표 함수는 function 키워드 대신 화살표를 사용하여 보다 간단한 방법으로 함수를 선언하는 함수 표현이다.
화살표 함수의 특징은 자신의 this, arguments, super 또는 new.target을 바인딩 하지 않는다.
함수가 어떻게 호출되었는지에 따라 바인딩할 객체가 결정되는 일반함수와는 달리,
화살표함수에는 this와 argument가 없기 때문에
화살표함수의 this는 화살표함수가 호출되는 시점과는 무관하게 선언되는 시점에 결정되며 언제나 상위 스코프의 this를 가리킨다.
화살표함수의 this 바인딩 객체 결정방식은 렉시컬 스코프(Lexical Scope)와 유사하다.
렉시컬 스코프는 함수를 어디서 선언하였는지에 따라 상위 스코프가 정해지는 방식으로
자바스크립트를 비롯한 대부분의 프로그래밍 언어는 렉시컬 스코프를 따른다.
화살표 함수에서 this를 사용할 경우 일반 변수와 동일하게 스코프 체인을 따라 탐색하게 되는 것이다.
그래서 일반적으로 this가 개입되는 경우라면 일반함수를 사용한다.
그리고 함수를 재사용하지 않을 목적으로 함수에 이름을 붙이지 않는 익명함수로
이 함수 표현은 메소드 함수가 아닌 곳에 가장 적합하기 때문에 생성자함수로 사용할 수 없다.
또한 return명령어 없이도 함수 실행을 종료시키고 값을 반환한다.