let func = (arg1, arg2, ...argN) => expression
이렇게 코드를 작성하면 인자 arg1..argN를 받는 함수 func이 만들어집니다. 함수 func는 화살표(=>) 우측의 표현식(expression)을 평가하고, 평가 결과를 반환합니다.
let sum = (a, b) => a + b;
alert( sum(1, 2) ); // 3
인수가 하나밖에 없다면 인수를 감싸는 괄호를 생략 가능
let double = n => n * 2;
// let double = function(n) { return n * 2 }과 거의 동일합니다.
alert( double(3) ); // 6
인수가 하나도 없을 땐 괄호를 비워놓으면 됩니다.다.
let sayHi = () => alert("안녕하세요!");
sayHi();
본문이 여러 줄인 화살표 함수
let sum = (a, b) => { // 중괄호는 본문 여러 줄로 구성되어 있음을 알려줍니다.
let result = a + b;
return result; // 중괄호를 사용했다면, return 지시자로 결괏값을 반환해주어야 합니다.
};
과제
let ask = (question) => {
confirm(question)?alert("동의하셨습니다."):alert("취소 버튼을 누르셨습니다.")
}
ask("동의하시겠습니까")
+++
'this’가 없는 화살표 함수
화살표 함수는 일반 함수와는 달리 ‘고유한’ this를 가지지 않음
화살표 함수에서 this를 참조하면, 화살표 함수가 아닌 ‘평범한’ 외부 함수에서 this 값을 가져옴
let user = {
firstName: "보라",
sayHi() {
let arrow = () => alert(this.firstName);
arrow();
}
};
user.sayHi(); // 보라