为什么箭头函数可能返回未定义:显式返回与隐式返回难题
箭头函数为在 JavaScript 中定义函数提供了简洁的语法。然而,在处理用括号({})包裹的函数体时,初学者经常会遇到一个奇怪的问题:为什么这些箭头函数返回 undefined?
考虑下面的简化示例:
const f = arg => { arg.toUpperCase(); }; console.log(f("testing")); // undefined
这个箭头函数的目的是将参数转换为大写,但它返回未定义。原因在于箭头函数主体周围的可选大括号。
与简洁主体(不带大括号)的箭头函数不同,主体表达式是隐式返回的,具有函数主体语法的箭头函数需要一个显式返回语句。在原始示例中,缺少显式返回会导致返回 undefined 而不是大写参数。
要纠正此问题,您可以使用显式返回:
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中文网其他相关文章!