화살표 함수 표현(arrow function expression)은 전통적인 함수표현(function)의 간편한 대안입니다. 하지만, 화살표 함수는 몇 가지 제한점이 있고 모든 상황에 사용할 수는 없습니다. -MDN
쉽게 설명하자면 Arrow Function은 ES6의 특징 중 하나로 간결함이 특징이다.
간결한 만큼 제한점이 있어 잘 알고 사용해야 오류를 예방할 수 있다.
아래는 MDN에서 설명하는 제한점이다.
- this나 super에 대한 바인딩이 없고, methods 로 사용될 수 없다.
- new.target키워드가 없다.
- call, apply, bind methods를 이용할 수 없다.
- 생성자로 사용할 수 없다.
- yield를 화살표 함수 내부에서 사용할 수 없다.
Function Declarations (함수 선언식) | Function Expressions (함수 표현식) | Arrow Function (화살표 함수) |
---|---|---|
function 함수명 ( ) { 구현 로직 } | const 함수명 = function ( ) { 구현 로직 } | const 함수명 = ( ) => { 구현 로직 } |
함수명 없이 사용 가능 () => { 구현 로직 }
매개변수가 하나라면 소괄호 생략 가능 매개변수 => { 구현 로직 }
구현 로직이 한줄이라면 중괄호 생략 가능 () => 구현 로직
객체 return 시 소괄호 사용 () => ({key: value})