간결한 화살표 함수는 자주 줄 바꿈 없이 작성되지만 간결한 구문의 요구 사항은 아니다. array.sort 콜백에서 수행할 복잡한 계산이 있는 경우에는 넣을 수 있다.
const array = [42, 67, 3, 23, 14];
array.sort((a, b) =>
a % 2 ? b % 2 ? a - b : -1 : b % 2 ? 1 : a - b
);
console.log(array); // [3, 23, 67, 14, 42]
이 코드는 배열을 두 그룹으로 정렬한다. 먼저 홀수와 짝수다. 함수의 본문은 여전히 단일 (복잡한) 표현식이며 간결한 화살표 양식에 중요하다.
그러나 화살표 함수에 단일 표현식이 아닌 여러 개의 문이 있어야한다면 어떨까? 복잡한 표현을 깨면 정렬 호출이 더 명확해질 것이라고 생각할 수 있다(확실히 그럴 것이라고 생각한다). 이를 위해 화살표 뒤에 중괄호를 사용하여 함수 본문을 제공하여 함수 본문 양식(또는 장황한 양식)을 사용할 수 있다.
const array = [42, 67, 3, 23, 14];
array.sort((a, b) => {
const aIsOdd = a % 2;
const bIsOdd = b % 2;
if (aIsOdd) {
return bIsOdd ? a - b : -1;
}
return bIsOdd ? 1 : a - b;
});
console.log(array); // [3, 23, 67, 14, 42]