JavaScript

[JavaScript] 화살표 함수 (arrow function)

FRDYtheme 2022. 12. 1. 17:14

화살표 함수 (ES6 이상 사용)

  • 함수 표현식(익명 함수)에서만 사용 가능
  • this, arguments, new 키워드 (생성자) 사용 어려움
  • 함수 본문이 여러 줄인 경우 {} 사용 권장, {} 사용시 반드시 return 키워드를 통해 반환
  • 실행문이 한 줄일 경우 return은 생략 가능.
변수명 = () => 실행문. // 매개변수가 없는 경우 반드시 () 작성

변수명 = para1 => 실행문. // 매개변수가 하나인 경우 () 생략 가능

변수명 = para1, para2 => { //매개변수가 있는 경우 () 생략 가능
 실행문;
 return 반환값;
}

 

아래의 두 식의 작동 방법은 동일하다.

 

function arrow(a, b) {
  return a + b;
}
alert(arrow(3, 7));

// 10 출력

함수 표현식을 화살표 함수로 작성할 때 return은 생략이 가능하다.

let arrow = (a, b) => a + b;
alert(arrow(3, 7));

// 10 출력

만약 인수가 존재하면 괄호 생략이 가능하지만 2개 이상이라면 가독성을 위해 괄호를 작성하는 것을 권장.

let alone = c => c *= 3;
alert(alone(3));

인수가 없으면 괄호만 작성.

  let empty = () => alert(`yes`);
  empty();

함수 본문이 한 줄로 짧다면 화살표 함수로 작성하는 것을 추천.

 

화살표 함수를 함수 표현식과 같은 방법으로 사용하는 것도 가능하다.

  let age = prompt("나이가 어떻게 됩니까", "");

  let friends = (age < 20) ? // 
  () => alert("19살 이하") :
  () => alert("20살 이상");

    //위 함수를 뜯어보면 아래와 같다.

  /* age의 값이 19 이하라면
    let friends = () => alert("19살 이하");
  */
  /* age의 값이 20 이상이라면
    let friends = () => alert("20살 이상");
  */

  friends();

함수 본문이 여러줄이라면 대괄호{} 안에 함수 본문을 작성하고 return을 작성해 값을 직접 반환해줘야 한다.

 

'JavaScript' 카테고리의 다른 글

[JavaScript] 객체의 형 변환  (0) 2022.12.01
[JavaScript] 자료형  (0) 2022.12.01
[JavaScript] 함수 function  (0) 2022.12.01
[JavaScript] 반복문 for, while  (0) 2022.11.30
[JavaScript] switch문  (0) 2022.11.30