
화살표 함수 표현은 전통적인 함수표현의 간편한 대안 이다.
하지만 화살표 함수는 몇 가지 제한점이 있고 모든 상황에 사용할 수는 없다.
(param1, param2, ..., paramN) => { statements }
(param1, param2, ..., paramN) => expression
// 다음과 동일함: => { return expression; }
// 매개변수가 하나뿐인 경우 괄호는 선택사항:
(singleParam) => { statements }
singleParam => { statements }
// 매개변수가 없는 함수는 괄호가 필요:
() => { statements }
// 객체 리터럴 표현을 반환하기 위해서는 함수 본문(body)을 괄호 속에 넣음:
params => ({foo: bar})
// 나머지 매개변수 및 기본 매개변수를 지원함
(param1, param2, ...rest) => { statements }
(param1 = defaultValue1, param2, ..., paramN = defaultValueN) => { statements }
// 매개변수 목록 내 구조분해할당도 지원됨
var f = ([a, b] = [1, 2], {x: c} = {x: a + b}) => a + b + c;
f(); // 6
화살표(=>) 다음의 괄호 유무는 실행만 하는 자와 값을 반환하는지 여부의 차이다.
함수 정의를 어떻게 표현하는지에 대한 문법이다.
function f() {
console.log(1);
return 2;
}
let y = () => { f() }
let z = () => f()
y()
// output: 1
// return: undefined
z()
// output: 1
// return: 2