함수를 정의하는 방법에는 함수선언문과 함수표현식이 있습니다.
// 함수선언문
function sum (x, y) {
return x + y;
}
// 함수표현식
const subtract = function (x, y) {
return x - y;
}
ES6가 등장하면서 함수를 정의하는 방법이 하나 더 생겼습니다. 바로 화살표 함수(arrow function)입니다. 함수표현식으로 함수를 정의할 때 function 키워드 대신 화살표(=>)를 사용합니다.
// 화살표 함수
const multiply = (x, y) => {
return x * y;
}
이처럼 화살표 함수를 사용하면 함수표현식으로 함수를 정의할 때보다 간략하게 함수를 정의할 수 있습니다. 또한 화살표 함수로 함수를 정의할 때 생략할 수 있는 몇 가지 규칙이 있습니다. 그 규칙들을 알아보겠습니다.
1. 매개변수가 한 개일 때, 소괄호(())를 생략할 수 있다.
// 매개변수가 한 개일 때, 소괄호를 생략할 수 있습니다.
const square = x => { return x * x }
// 위 코드와 동일하게 동작합니다.
const square = ( x ) => { return x * x }
// 단, 매개변수가 없는 경우엔 소괄호를 생략할 수 없습니다.
const greeting = () => { return 'hello world' }
2. 함수 코드 블록 내부가 하나의 문으로 구성되어 있다면 중괄호({})를 생략할 수 있다. 이때 코드 블록 내부의 문이 값으로 평가될 수 있으면 return 키워드를 생략할 수 있다.
const squre = x => x * x
// 위 코드와 동일하게 동작합니다.
const square = x => { return x * x }
// 위 코드와 동일하게 동작합니다.
const square = function (x) {
return x * x
}