这里的“未定义”来自哪里?

问题描述

我有以下代码

console.log(doSomething);
doSomething();

function doSomething() {
    console.log("Declare something");
}

在控制台中返回的

[Function: doSomething]
Declare something

但是当我写

console.log(doSomething());

function doSomething() {
    console.log("Declare something");
}

控制台说

Declare something
undefined

我理解为什么它只说“声明某事”而不是“ [Function:doSomething]”,但是为什么它说“ undefined”?为什么不说“声明一些东西声明一些东西”?

解决方法

未定义是函数的返回值。 例如,为此更改功能以证明这一点。

function doSomething() {
    console.log("Declare something");
    return "test";
} 
,

第二条日志与您的console.log(doSomething());有关,该日志正在打印功能的return。在这种情况下,您不会返回任何内容,因此它会显示undefined

,

那是因为您没有声明函数的return语句。