我必须在javascript函数中返回一些东西吗?

Posted

技术标签:

【中文标题】我必须在javascript函数中返回一些东西吗?【英文标题】:Do I have to return something in javascript function? 【发布时间】:2011-09-07 11:38:26 【问题描述】:

javascript 函数中,我是否需要返回一些东西(真或假)?到目前为止,我编写的所有函数都没有返回任何东西都可以正常工作。我只是好奇。

【问题讨论】:

它们工作得很好,除非您期望它们返回除undefined 之外的任何内容;-) 但是,我认为问题本身已经得到了回答。 另外,仅仅因为一个函数确实返回了一些东西并不意味着你必须对返回的值做任何事情。 【参考方案1】:

没有; Javascript 函数不需要返回值。

如果你调用一个没有return 值的函数,你会得到undefined 作为返回值。

【讨论】:

对于其中包含 return; 的函数也是如此。 以及可以退出而不执行其返回之一的函数。 我想也许“如果你调用一个函数并且return没有被执行......”或者......“如果控制在没有遇到return的情况下运行到函数的末尾”或者...... .【参考方案2】:

不,你不知道。我相信如果你这样做

var result = iAmADefinedFunctionThatDoesntReturnAnything();

结果将是未定义的。

编辑,这个截图应该很有启发性(请原谅我调用 f 失败时的错误):

【讨论】:

其实你还没有定义函数,所以会抛出ReferenceError。 @hello71。看顶部。第 1 行 var f = function() 肯定定义了一个函数 另外,你真的应该使用 typeof 来确定 undefined。 @hello71,对,我希望我们可以直觉地认为 functionThatDoesntReturnAnything() 实际上是一个不返回任何内容的已定义函数。 ;) @hello71,好的,现在怎么样? ;)【参考方案3】:

不,你没有

但是 如果你发现自己在做这样的事情

 function myFun()
   if (1 == 2)
    return true ;
   
 

现在你应该知道你的代码做错了,因为只有部分函数返回值是没有意义的

【讨论】:

为什么没有意义?例如,如果您想用搜索词填充列表但没有找到,那么您最好什么也不返回。 因为if条件总是被评估为null,我们称之为死码

以上是关于我必须在javascript函数中返回一些东西吗?的主要内容,如果未能解决你的问题,请参考以下文章

在JavaScript中有类似mulitiSet的东西吗?

JavaScript函数等待回调返回值[重复]

无论如何要从 Swift 中的 socket.io 方法返回一些东西吗?

在 JavaScript 中使用匿名函数有啥缺点吗?例如。内存使用?

如何列出 javascript 对象的函数/方法? (这甚至可能吗?)

HTML中可以做一些没有javascript的东西吗?