화살표 함수(Arrow function)
또는 화살표 함수 표현식(Arrow function expressions)
은 함수 표현식이다.
const add = (x,y) => {return x + y}
add(3,1) //4
화살표 함수는 {}
를 ()
로 바꾸고 return을 생략하며 암시적 반환
을 만들 수 있다.
또한 아예 괄호를 없애 암시적 반환
을 만들 수도 있다.
단, 표현식이 하나만 있어야 활용할 수 있다.
입력 부분의 ()
도 만약 매개 변수가 1개라면 생략이 가능하다.
const isEven = function (num) {
return num % 2 === 0;
}
const isEven = (num) => {
return num % 2 === 0;
}
const isEven = num => { // 입력부분 괄호 생략
return num % 2 === 0;
}
const isEven = num => ( // 출력부분 암시적 반환 활용
num % 2 === 0;
)
const isEven = num => num % 2 === 0; // 입력부분 괄호 생략 및 출력부분 암시적 반환 활용
this
, arguments
나 super
에 대한 자체 바인딩이 없고, 메서드로 사용해서는 안 된다.new.target
키워드가 없다.call()
, apply()
, bind()
메서드를 이용할 수 없다.생성자(Constructor)
로 사용할 수 없다.yield
를 화살표 함수 내부에서 사용할 수 없다.화살표 함수
에서 this
를 사용하면 전역 객체
를 참조하고 있기때문에 이러한 제한점들이 생긴다.
이러한 제한점들이 있기 때문에 인수에 접근해야 한다면
일반 함수
를 사용하는 것이 좋다.