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

JavaScript에서 일부 화살표 함수가 '정의되지 않음'을 반환하는 이유는 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-18 05:25:09319검색

Why Do Some Arrow Functions Return `undefined` in JavaScript?

화살표 함수가 정의되지 않은 값을 반환할 수 있는 이유: 명시적 반환과 암시적 반환의 수수께끼

화살표 함수는 JavaScript에서 함수를 정의하기 위한 간결한 구문을 제공합니다. . 그러나 괄호({})로 묶인 함수 본문을 처리할 때 초보자는 종종 특이한 문제에 직면합니다. 왜 이러한 화살표 함수가 정의되지 않은 값을 반환합니까?

다음의 간단한 예를 고려하십시오.

const f = arg => { arg.toUpperCase(); };
console.log(f("testing")); // undefined

이 화살표 함수는 인수를 대문자로 변환하기 위한 것이지만 정의되지 않은 값을 반환합니다. 그 이유는 화살표 함수 본문 주위의 선택적 중괄호에 있습니다.

본문 표현식이 암시적으로 반환되는 간결한 본문(중괄호 없음)이 있는 화살표 함수와 달리 함수 본문 구문이 있는 화살표 함수에는 명시적인 반환문. 원래 예에서는 명시적 반환이 없으면 대문자 인수 대신 undefound가 반환됩니다.

이를 수정하려면 명시적 반환을 사용할 수 있습니다.

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

또는 간결한 본문 사용:

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

명시적 반환 및 간결함을 사용한 예 body:

const f1 = arg => { return arg.toUpperCase(); };
console.log(f1("testing"));

const f2 = arg => arg.toUpperCase();
console.log(f2("testing"));

이러한 규칙을 준수하면 명시적 반환이든 암시적 반환이든 상관없이 화살표 함수가 항상 의도한 값을 반환하도록 보장할 수 있습니다.

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

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