理解箭头函数的返回值:显式与隐式的困境
ES6 中引入的箭头函数因其语法简洁,灵活性强。然而,在处理返回值时,困扰新手程序员的一个常见陷阱会出现。
考虑以下箭头函数:
const f = arg => { arg.toUpperCase(); };
调用时,此函数意外返回 undefined。为什么会发生这种情况?
简洁箭头函数中的隐式返回
箭头函数提供两种不同的语法变体:没有大括号的简洁形式和带有大括号的更详细形式大括号。简洁的形式隐式返回主体表达式的结果,无需显式的 return 语句。因此,像 arg => 这样的箭头函数arg.toUpperCase();自动返回大写的参数。
花括号箭头函数中的显式返回
另一方面,带有花括号的箭头函数使用传统的函数体。在这种情况下,没有隐式返回。要从此类箭头函数获取值,必须使用显式 return 语句。修改我们之前的示例:
const f = arg => { return arg.toUpperCase(); };
现在,该函数将正确返回大写的参数。或者,我们可以通过省略大括号来使用更简洁的形式:
const f = arg => arg.toUpperCase();
在这种情况下,箭头函数隐式返回表达式的结果,即大写的参数。
通过了解箭头函数中隐式返回和显式返回之间的区别,您可以避免在处理它们的返回值时出现的陷阱。
以上是为什么有些箭头函数返回'undefined”,而另一些则不返回?的详细内容。更多信息请关注PHP中文网其他相关文章!