본문 바로가기
Dev/React

[JS] 화살표 함수

by Ellen571 2024. 7. 4.
반응형

화살표 함수란

함수 표현식보다 단순하고 간결한 문법으로 함수를 만들 수 있는 방법을 말한다.

let func = function(arg1, arg2, ...argN) {
  return expression;
};

 

위와 같은 함수를

아래와 같이 간략하게 표현할 수 있다.

let func = (arg1, arg2, ...argN) => expression

 

화살표 함수를 아래와 같이 더 간략하게 사용할 수 있다.

 

 

1) 매개변수 () 괄호 생략하기

화살표 함수가 정확히 하나의 매개변수만 사용하는 경우, 묶는 괄호를 생략할 수 있다.

let func = (userName) => { ... }

 

userName이라는 하나의 매개변수만 사용되니 매개변수를 묶는 () 괄호 없앨 수 있다.

let func = userName => { ... }

 

 

참고:

  • 함수에 매개변수가 없는 경우에는, 괄호를 생략해서는 안된다. () => { ... } 라고 써야한다.
  • 함수가 둘 이상의 매개변수를 받는 경우에도 괄호를 생략해서는 안된다. (userName, userAge) => { ... }

 

 

2) 함수 본문 {} 중괄호 생략하기

화살표 함수에 반환문 외에 다른 로직이 없는 경우, return키워드와 {}중괄호를 생략할 수 있다.

number => { return number * 3;}

 

number * 3만 반환하고 있으니 아래와 같이 return과 중괄호를 없앤다.

number => number * 3;

 

 

아래와 같으면 오류가 생긴다.

number => return number * 3;
  • retrun 키워드는 생략되어야 하므로, 오류가 생긴다.
number => if (number === 2) { return 5 };
  • if 문은 반환될 수 없으므로 오류가 생긴다.

 

 

3) 객체만 반환하는 경우

2)에서 설명한 짧은 대안으로 객체를 반환하려고 하면, 다음과 같이 유효하지 않은 코드가 나올 수 있다.

number => { age: number };

자바스크립트는 {}중괄호를 객체를 생성하는 코드가 아닌 함수 본문으로 취급하기 때문에 이 코드는 유효하지 않다.

객체를 생성하고 반환하고 싶다면 다음과 같이 해야한다.

number => ({ age: number }); // 추가 괄호를 써서 객체를 감싸주기

객체와 중괄호를 ()추가 괄호로 감싸면, 자바스크립트는 중괄호가 함수 본문을 정의하는 것이 아니라 객체를 생성하기 위한 것으로 이해한다.

반응형

'Dev > React' 카테고리의 다른 글

[JS] 배열과 배열 메소드  (1) 2024.07.05
[JS] 객체와 클래스  (0) 2024.07.05
[JS] import 와 export 사용하는 방법  (0) 2024.06.19
[React] 리액트는 어떻게 작동할까?  (0) 2024.06.19
[React] map()  (0) 2024.06.12