>웹 프론트엔드 >JS 튜토리얼 >일부 화살표 함수는 '정의되지 않음'을 반환하는 반면 다른 화살표 함수는 반환하지 않는 이유는 무엇입니까?

일부 화살표 함수는 '정의되지 않음'을 반환하는 반면 다른 화살표 함수는 반환하지 않는 이유는 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-16 16:39:14246검색

Why Do Some Arrow Functions Return `undefined` While Others Don't?

애로우 함수의 반환 값 이해: 명시적 vs. 암시적의 딜레마

ES6에 도입된 화살표 함수는 다음과 같은 인기를 얻었습니다. 간결한 구문과 유연성. 그러나 초보 프로그래머를 괴롭히는 일반적인 함정은 반환 값을 처리할 때 발생합니다.

다음 화살표 함수를 고려하세요.

const f = arg => { arg.toUpperCase(); };

이 함수를 호출하면 예기치 않게 정의되지 않은 값이 반환됩니다. 왜 이런 일이 발생합니까?

간결한 화살표 함수의 암시적 반환

화살표 함수는 두 가지 고유한 구문 변형을 제공합니다. 중괄호가 없는 간결한 형식과 중괄호가 있는 좀 더 자세한 형식입니다. 중괄호. 간결한 형식은 본문 표현식의 결과를 암시적으로 반환하므로 명시적인 return 문이 필요하지 않습니다. 따라서 arg => arg.toUpperCase(); 자동으로 대문자 인수를 반환합니다.

중괄호 화살표 함수의 명시적 반환

반면에 중괄호가 있는 화살표 함수는 전통적인 함수 본문을 사용합니다. 이 시나리오에서는 암시적 반환이 없습니다. 이러한 화살표 함수에서 값을 얻으려면 명시적인 return 문을 사용해야 합니다. 이전 예 수정:

const f = arg => { return arg.toUpperCase(); };

이제 함수는 대문자로 표시된 인수를 올바르게 반환합니다. 또는 중괄호를 생략하여 더 간결한 형식을 사용할 수 있습니다.

const f = arg => arg.toUpperCase();

이 경우 화살표 함수는 대문자로 표시된 인수인 표현식의 결과를 암시적으로 반환합니다.

화살표 함수의 암시적 반환과 명시적 반환의 차이점을 이해하면 반환 값을 처리할 때 발생하는 함정을 피할 수 있습니다.

위 내용은 일부 화살표 함수는 '정의되지 않음'을 반환하는 반면 다른 화살표 함수는 반환하지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.