【问题标题】:Is return needed in JavaScript functions that do not return anything在不返回任何内容的 JavaScript 函数中是否需要返回
【发布时间】:2021-10-13 20:31:48
【问题描述】:

在 JavaScript 中,我知道return 将返回函数可能产生的一些输出并停止该函数的执行。

我的问题是关于函数不返回任何内容的情况。它只执行一些操作。

我主要在 React 和 React Native 的上下文中使用 JavaScript,所以我的示例是在 React Native 中。

第一个示例是一个简单地从AsyncStorage 中删除某些内容的函数。我通常在用户注销时使用它。在这种情况下我需要return吗?

export const removeAuthData = async () => {
   return await AsyncStorage.removeItem('auth');
}

另一个例子是当我有一个可以更新我的应用程序状态的函数时:

setIsAuthenticated(value) {
   this.props.actions.setIsAuthenticated(value);
}

在这些情况下,我是否需要在我的函数中使用return

【问题讨论】:

  • 如果您忽略返回值,则不会。 (是的,总是有一个返回值,即使它是undefined。)
  • 引用:newbedev.com/…

标签: javascript


【解决方案1】:

由于 JavaScript 是一种弱类型语言,因此函数的返回类型和值完全取决于 return 的值。

当然,如果你不打算使用函数的返回值,那么return 与否都没有关系。不过,return 是否是最后一个语句可能是一种风格选择。

最后,如果你 return 是一个值为 undefined 的表达式的结果,那么无论你是否真的返回了函数体,它都是完全无法区分的。

TL;DR:不需要,但取决于风格选择和偏好。

【讨论】:

    【解决方案2】:

    不,在标准 JavaScript 中,如果不使用返回值,则在函数底部;

    • return 相当于
    • return <someExpressionWithoutSideEffects>,相当于
    • 什么都没有(最后没有返回语句)

    请注意,对于那些使用 TypeScript 的人来说,情况有些不同 - 使用 return 关键字表示您确实在尝试将值从函数传递给它的调用者,在这种情况下 returnreturn undefinednot quite the same as 根本没有 return 声明。

    【讨论】:

      【解决方案3】:

      您不必从函数中返回值。 请注意,函数确实有一个默认返回值 undefined

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-04-08
        • 1970-01-01
        • 2013-09-05
        • 1970-01-01
        • 1970-01-01
        • 2021-03-05
        • 1970-01-01
        • 2018-08-27
        相关资源
        最近更新 更多