function 키워드를 사용해서 함수를 만드는 것보다 화살표(=>)를 사용 간단히 함수를 선언한다. function표현에 비해 구문이 짧고 자신의 this, arguments, super 또는 new.target을 바인딩 하지 않는다. 항상 익명 함수이고 메소드가 아닌 곳에 가장 적합하다.
function test (number) {
console.log('test');
};
//위의 함수를 arrowfunction으로 만들면 아래와 같다.
const test = (number) => { console.log('test') };
매개변수가 없을 경우
() => { console.log("매개변수없는경우"); }
매개변수가 한 개인 경우 : 소괄호 생략가능
x => { console.log(x); }
매개변수가 여러 개인 경우 : 소괄호 생략불가
(x, y) => { console.log(x+y); }
single line block : 함수 몸체가 한줄의 구문이라면 중괄호를 생략할 수 있으며 암묵적으로 return
x => x * x
객체 반환 : 소괄호사용
() => ({ a: 1 })
multi line block
() => {
const x = 10;
return x * x;
};
일반함수와 화살표함수의 가장 큰 차이점은 this이다.
일반 함수의 this는 이곳을 클릭해서 참고.
const person = {
name: 'Lee',
sayHi() {
console.log(`Hi ${this.name}`);
}
};
person.sayHi(); // Hi Lee
ArrowFunction에서this출처: https://poiemaweb.com/es6-arrow-function