Node.js中console.log后为何hello world示例出现undefined

10
我刚开始接触Node.js。所以为了从Hello World例子node.js初学者指南入手。当我输入命令console.log("Hello world");时,它在控制台上打印出"Hello World"。这就是我期望的代码输出。但在下一行,它也会打印出undefined
我从此链接安装了Windows版的Node.js Node.js Windows安装指南
以下是此内容的屏幕截图:

输入图像描述


JavaScript函数必须返回任何内容,因此它返回undefined,当我使用console.log(“Hello World”);return;时,它不会打印undefined。 - rahularyansharma
1
Node shell 会输出你输入的任何内容的返回值,在这种情况下,是 undefined。 - Michelle Tilley
这回答您的问题吗?node.js在控制台上显示“undefined” - Ivar
1个回答

17

每个 JavaScript 函数都会返回一个值。当你像这样定义函数:

function test() {
    var x = 1;
}

那么test()函数将返回undefined。对于console.log函数也是一样的,它的作用是将参数传递到显示屏上,然后返回undefined。现在 Node JS shell 的工作方式是,每当您输入一个函数、变量等,它都会显示它返回的值。因此,console.log('Hello world!');会将Hello world!传递给屏幕,并返回undefined,然后 Node JS shell 显示该值。

大致就是这样的工作流程。


当我在Node控制台中键入for (c in {}) { };时,仍然会得到undefined。我非常确定for不是一个函数。因此,我怀疑你的答案是不正确或者至少不完整的。 - Andrew Savinykh
1
抱歉回复晚了,完全错过了评论。无论如何,它适用于所有表达式。每个JavaScript表达式(不仅仅是函数)都会返回一些东西,尽管并非每个结果都可以赋值给变量。 - freakish
这个是否有参考资料证明每个表达式都会返回一些东西? - TMOTTM

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接