node.js在控制台上显示"undefined"

San*_*G B 46 javascript console undefined node.js

最近我在我的Windows 7机器上安装了node.js.

在执行JavaScript时,我得到一个未定义的消息以及表达式的成功执行.

这有什么不对?我没有注意到任何其他副作用.

在此输入图像描述

ale*_*lex 46

JavaScript函数总是返回一些东西.如果您没有在函数中指定要返回的内容,则默认情况下会返回"undefined"(您也可以在Firebug中查看).

不过不用担心,这不会影响任何事情,你可以忽略它.

  • 引擎盖下发生了什么.输入asdasd作为示例并看到此错误:在REPLServer.eval(repl.js:80:21)...所以在幕后有一个eval()函数返回'undefined'. (6认同)

Esa*_*ija 32

只需写入"hello world";并按下输入...它将返回"hello world"而不是undefined,因此不会undefined显示.console.log返回undefined并记录控制台的参数,以便获得多条消息.

  • 我试图了解最新情况.alessioalex回答了我的问题:) (2认同)

小智 19

正如其他人所指出的,如果你没有指定任何返回值,javascript函数将始终返回undefined.你可以忽略它.它不会造成任何伤害.但是,如果它太烦人了,那么你可以在repl中关闭它.Repl具有此属性ignoreUndefined,默认情况下设置为false.您可以将其设置为true.试试这个:

module.exports.repl.ignoreUndefined = true;
Run Code Online (Sandbox Code Playgroud)


Mel*_*ste 7

好吧,问题是在几年前提出的,但还有另一种方法可以解释这里发生的事情.

尝试下一个命令:

console.log("Hello World") || "Bye World";
Run Code Online (Sandbox Code Playgroud)

如上所述,函数console.log()返回undefined正常,您可以选择更好的返回值.由于非严格(摘要)相比,认为undefined等于false||运营商允许你这样的选择.

考虑到它只是一个调试工具,这在一般情况下是不必要的,但有助于理解控制台显示发送到stdout的文本并且还会破坏命令并显示返回的值,如果没有收到值则未定义.