개발자 준비과정/Javascript, React

[JS] 화살표 함수의 명시적 반환, 암묵적 반환

하늘바람a 2024. 6. 28. 10:03

map 메서드와 화살표 함수

 

  • map 메서드는 배열의 각 요소를 순회하며 주어진 함수를 호출해 새로운 배열을 생성합니다.
  • 화살표 함수는 간결한 문법으로 함수를 정의할 수 있다.
    • 반환 방식에 따라 명시적 반환과 암묵적 반환으로 나눌 수 있습니다.

 

`map` 메서드를 사용할 때 `return`을 제거하면 화살표 함수의 암묵적인 반환이 제대로 이루어지지 않기 때문에 동작하지 않을 수 있습니다.

 

 

명시적 반환과 암묵적 반환

 

  • 명시적 반환: 중괄호 `{}`를 사용한 경우에는 `return` 키워드를 사용해 값을 명시적으로 반환해야 합니다.
  • 암묵적 반환: 중괄호 `{}` 없이 표현식만 사용하는 경우, 해당 표현식의 결과가 암묵적으로 반환됩니다.

 

코드 예제


명시적 반환을 사용한 경우:

{categories.map((cat) => {
  return (
    <Button
      key={cat.id}
      onClick={() => handleCategoryChange(cat.id)}
      m={2}
      colorScheme="teal"
      variant={category == cat.id ? "solid" : "outline"}
    >
      {cat.name}
    </Button>
  );
})}

 


암묵적 반환을 사용한 경우:

{categories.map((cat) => (
  <Button
    key={cat.id}
    onClick={() => handleCategoryChange(cat.id)}
    m={2}
    colorScheme="teal"
    variant={category == cat.id ? "solid" : "outline"}
  >
    {cat.name}
  </Button>
))}

 

 

결론

 

  • map 메서드를 사용할 때, 함수 내부에서 중괄호 {}를 사용하고 return을 생략하면 함수가 값을 반환하지 않게 됩니다.
  • 이는 함수가 undefined를 반환하게 되어, 렌더링할 요소가 없게 됩니다.
  • 따라서, 중괄호 {}를 사용한 경우에는 return을 명시적으로 작성해야 하며,
  • 중괄호를 생략하고 소괄호 ()를 사용하면 암묵적으로 반환할 수 있습니다.