짧은 함수 표현식과 lexical this 특성을 배웁니다.
화살표 함수는 function 표현식을 간결하게 쓰며 표현식 하나는 중괄호와 return을 생략할 수 있습니다. 자신의 this와 arguments를 만들지 않아 객체 메서드나 생성자에 항상 대체할 수 있는 것은 아닙니다.
map에 넘긴 화살표 함수는 중괄호 없이 거듭제곱 식 하나만 적었기 때문에 그 값이 그대로 반환되어 squares가 [1, 4, 9, 16, 25]가 됩니다. filter의 화살표 함수는 2로 나눈 나머지가 0인지 비교한 boolean을 돌려주고, true를 받은 4와 16만 evenSquares에 남습니다. numbers 배열 자체는 두 메서드를 거친 뒤에도 그대로입니다.
화살표 함수에서 객체 리터럴을 바로 돌려주려면 (number) => ({ value: number })처럼 괄호로 감싸야 합니다. 괄호가 없으면 중괄호가 함수 본문 블록으로 해석되어 value:가 레이블이 되고 반환값은 undefined가 됩니다. 매개변수가 하나뿐일 때는 매개변수를 감싼 괄호를 생략할 수 있습니다.
객체 메서드에서 this가 필요할 때 화살표 함수를 쓰면 바깥 this를 참조합니다.
직접 바꿔보세요세제곱 함수로 바꾸고 10보다 큰 값만 필터링하세요.