console.log(myFunction()) 返回未定义

Ser*_*kov 1 javascript undefined console.log

我是 JavaScript 的新手,我尝试使用它来理解所有的进进出出。我写的

function greet() {
    console.log("Hi");
};

console.log(greet());
Run Code Online (Sandbox Code Playgroud)

它在控制台中的结果是

> Hi app.js:2 
> undefined app.js:4
Run Code Online (Sandbox Code Playgroud)

我认为这是因为greet()insideconsole.log首先调用函数,该函数打印出"Hi". 我们得到第一行日志。但是第二行是从哪里来的呢?

然后我想,因为Hi是 的总体结果greet(),然后console.log基本上调用了变量Hi,但在这种情况下,结果将是is not defined,不是undefined

Mam*_*mun 5

在JavaScript中,如果没有从该函数返回与关键字return,然后undefined在默认情况下返回。

var data = greet();
console.log(data);// undefined, since your function does not return.
Run Code Online (Sandbox Code Playgroud)

相当于:

console.log(greet());

第二个输出是函数的返回结果。由于您没有从函数中返回任何内容,因此打印undefined.

要在第二个控制台中打印“Hi”,您必须从函数中返回它。

var data = greet();
console.log(data);// undefined, since your function does not return.
Run Code Online (Sandbox Code Playgroud)