JavaScript函数:没有return语句等同于返回undefined吗?

时间:2018-06-27 09:34:41

标签: javascript

var f1 = () => {
    return undefined;
};

var f2 = () => {
};

var a = f1(); // undefined
var b = f2(); // undefined

我知道结果,但是我想更深入地了解。这在Javascript函数中意味着没有return语句等同于return undefined吗?

3 个答案:

答案 0 :(得分:5)

  

我知道结果,但是我想更深入地了解。在Javascript函数中,这是否意味着没有return语句与return undefined相同?

实际上是 ,是的。规范区分了两者,但以务实的术语进行了区分,调用的函数“掉到了尽头”与return;return undefined;的调用结果完全相同结果为:undefined

my answer to the dupetarget中,(我应该意识到!)我解释了规范是如何区分它们的,但是同样,这只是规范的区别,不是您在实际代码中可以看到的。 / p>

答案 1 :(得分:2)

要视情况而定。

对于不用作实例的函数,默认返回值为undefined

对于使用new调用的构造函数,它将默认返回this对象。

来源:

答案 2 :(得分:1)

如果没有返回值,则返回值将为 undefined ,与执行return基本上相同; (无值),因为函数最终定义时将“返回”(有关返回的信息,请参见https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/return

如果您初始化一个函数(更像一个类),则返回值将代替该函数的实例。