es에서 탄생한 주요 문법인 화살표 함수는 기존의 전통적인 함수 표현법을 더욱 간단하게 표현 하기 위해서 탄생했다. 간단하는 것은 곧 코드의 가독성과 효율로 이어질 수 있다.
let sum = function(a,b) {
return a + b;
};
let sum = (a,b) => a + b;
화살표 함수는 익명함수여야 한다.
기존의 함수는 함수가 실행될 때, 자신의 Scope안에 자신을 가르키는 this가 존재한다.
하지만, 화살표 함수에는 this가 없다 화살표 함수의 본문( {} 안 )에서 this에 접근하면, 외부의 값을 가져온다.
이에 따라,
일단, arguments는 뭘까? 나와라 코드 블럭!
arguments는 일반 함수와는 다르게 모든 인수에 접근할 수 있는 유사 배열 객체이다.
const x = function (){
console.log(arguments); // Arguments(4) [1,2,3,4, calle 어쩌구 저쩌구]
}
x(1,2,3,4);
하지만, 화살표 함수는 arguments가 없어 위의 처럼 쓸 수 없다.
aruments처럼 쓸 수 있는 방법도 있다!
const x = (...args) => {
console.log(args); // (4) [1,2,3,4]
}
x(1,2,3,4);
es6문법인 전개 연산자를 통해서 비슷하게 사용할 수도 있다!