javascript-node.js在缺点上显示“ undefined”

最近,我在Windows 7计算机上安装了node.js。

在执行JavaScript时,随着表达式的成功执行,我收到一条未定义的消息。

怎么了 我还没有注意到任何其他副作用。

enter image description here

Sandeep G B asked 2020-06-22T14:13:08Z
7个解决方案
44 votes

JavaScript函数始终返回某些内容。 如果您未在函数中指定要返回的内容,则默认情况下会返回“ undefined”(您也可以在Firebug中进行检查)。

不过请放心,这不会影响任何内容,您可以忽略它。

alessioalex answered 2020-06-22T14:13:55Z
30 votes

只需输入"hello world";并按Enter键...它将返回"hello world"而不是undefined,因此不会显示undefinedconsole.log返回undefined,并且还将参数记录到控制台,以便您获得多个消息。

Esailija answered 2020-06-22T14:13:30Z
19 votes

正如其他人指出的那样,如果您未指定任何返回值,则javascript函数将始终返回undefined。 您可以忽略它。 这不会造成任何伤害。但是,如果这让您非常烦恼,则可以将其关闭。 Repl具有此属性ignoreUndefined,默认情况下将其设置为false。 您可以将其设置为true。试试这个:

module.exports.repl.ignoreUndefined = true;
AvinashB answered 2020-06-22T14:14:15Z
7 votes

嗯,这个问题是几年前提出的,但是还有另一种方式可以解释这里发生的事情。

尝试下一个命令:

console.log("Hello World") || "Bye World";

如前所述,函数console.log()通常会返回undefined,您可以选择一个更好的返回值。 由于非严格(抽象)比较认为undefined等于false,因此||运算符允许您选择。

考虑到它只是一个调试工具,通常不需要使用它,但有助于了解控制台显示发送到stdout的文本,并评估命令并显示返回的值,如果未接收到任何值,则为undefined。

Melo Waste answered 2020-06-22T14:14:49Z
4 votes

如果需要从模块内部打开ignoreUndefined,则可以使用以下代码行模拟AvinashB的答案,而无需自己输入控制台:

process.stdin.emit('data', "module.exports.repl.ignoreUndefined = true;\n");
RienNeVaPlu͢s answered 2020-06-22T14:15:10Z
4 votes

node也打印undefined,因为在一般情况下,它显示每个命令的返回值,而console.log不返回任何内容。

student answered 2020-06-22T14:15:30Z
1 votes

发生这种情况是因为console.log具有(空/未定义)返回类型解决这个问题..有一个返回字符串的函数..然后记录该函数返回的值...这将克服未定义的问题。

const addNotes= function(msg)
{
    return msg;
}
console.log(addNotes('say hello'));
Mahmoud Sayed answered 2020-06-22T14:15:50Z
translate from https://stackoverflow.com:/questions/8457389/node-js-displays-undefined-on-the-console