最近我在Windows 7机器上安装了node.js.
在执行JavaScript时,我得到 undefined 消息以及表达式的成功执行。
这里有什么问题?我没有注意到任何其他副作用。
答案 0 :(得分:42)
JavaScript函数总是返回一些东西。如果你没有在函数中指定要返回的内容,默认情况下会返回'undefined'(你也可以在Firebug中查看)。
不要担心,这不会影响任何事情,你可以忽略它。
答案 1 :(得分:29)
只需撰写"hello world";
并按Enter键即可返回"hello world"
而不是undefined
,因此不会显示undefined
。 console.log
返回undefined
并将参数记录到控制台,以便您收到多条消息。
答案 2 :(得分:18)
正如其他人所指出的,如果你没有指定任何返回值,javascript函数将始终返回undefined。你可以忽略它。它不会造成任何伤害。 但如果它太烦人了,那么你可以在repl中关闭它。 Repl具有此属性 ignoreUndefined ,默认情况下设置为false。您可以将其设置为true。 试试这个:
module.exports.repl.ignoreUndefined = true;
答案 3 :(得分:6)
嗯,问题是几年前提出的,但还有另一种方法可以解释这里发生的事情。
尝试下一个命令:
console.log("Hello World") || "Bye World";
如上所述,函数console.log()
通常会返回undefined
,您可以选择更好的返回值。由于非严格(抽象)比较认为undefined
等于false
,||
运算符允许您进行选择。
考虑到它只是一个调试工具,这在一般情况下是不必要的,但有助于理解控制台显示文本发送到stdout并且还会破坏命令并且显示返回值,如果没有收到值,则为undefined。
答案 4 :(得分:4)
如果您需要从模块内部打开ignoreUndefined
,您可以使用以下行模拟AvinashB的答案,而无需自行键入控制台:
process.stdin.emit('data', "module.exports.repl.ignoreUndefined = true;\n");
答案 5 :(得分:2)
node
也打印undefined
因为 IN GENERAL ,它会显示每个命令的返回值,而console.log
不会返回任何内容。
答案 6 :(得分:0)
发生这种情况是因为console.log具有(空/未定义)返回类型 解决这个问题..有一个返回字符串的函数.. 然后记录该函数返回的值... 可以解决未定义的问题。
const addNotes= function(msg)
{
return msg;
}
console.log(addNotes('say hello'));
答案 7 :(得分:0)
只需忽略它,根本无需担心。当我调用没有任何返回类型的函数时,我也遇到了同样的问题。因此,节点用于为调用的函数打印未定义的返回类型。
function emitEvent(eventname){
eventEmitter.emit(SIV_EVENT);
}
console.log(emitEvent());
在此处https://nodejs.org/api/util.html选中未定义。
答案 8 :(得分:0)
为避免在使用Node的undefined
模块时看到命令的repl
输出,请在repl.start
中将ignoreUndefined
设置为true
。