[英]node.js displays "undefined" on the console
最近我在我的 Windows 7 机器上安装了 node.js。
在执行 JavaScript 时,我收到一条未定义的消息以及表达式的成功执行。
这里有什么问题? 我没有注意到任何其他副作用。
JavaScript 函数总是返回一些东西。 如果您没有在函数中指定要返回的内容,则默认返回 'undefined'(您也可以在 Firebug 中查看)。
不过不用担心,这不会影响任何事情,您可以忽略它。
只写"hello world";
并按回车键...它将返回"hello world"
而不是undefined
,因此不会显示undefined
。 console.log
返回undefined
并将参数记录到控制台,以便您获得多条消息。
正如其他人所指出的,如果您不指定任何返回值,javascript 函数将始终返回 undefined。 你可以忽略它。 它不会造成任何伤害。 但是如果它让你太烦了,那么你可以在 repl 中关闭它。 Repl 有这个属性ignoreUndefined ,默认设置为 false。 您可以将其设置为 true。 尝试这个:
module.exports.repl.ignoreUndefined = true;
好吧,这个问题是几年前提出的,但还有另一种方式来解释这里发生的事情。
尝试下一个命令:
console.log("Hello World") || "Bye World";
如前所述,函数console.log()
正常返回undefined
,您可以选择更好的返回值。 由于非严格(抽象)比较认为undefined
等于false
||
运营商允许您进行选择。
考虑到它只是一个调试工具,这在一般使用中是不必要的,但有助于理解控制台显示发送到 stdout 的文本并评估命令并显示返回值,或者如果没有收到值则为 undefined。
如果您需要从模块内部打开ignoreUndefined
,您可以使用以下行来模拟AvinashB的答案,而无需自己在控制台中输入:
process.stdin.emit('data', "module.exports.repl.ignoreUndefined = true;\n");
node
也会打印undefined
因为IN GENERAL ,它显示每个命令的返回值,并且console.log
不返回任何内容。
这是因为 console.log 有(空/未定义)返回类型来解决这个问题..有一个函数返回一个字符串..然后记录该函数返回的值......这将克服未定义的问题..
const addNotes= function(msg)
{
return msg;
}
console.log(addNotes('say hello'));
直接无视就好,完全不用担心。 当我在没有任何返回类型的情况下调用函数时,我也遇到了同样的问题。 所以节点用于打印被调用函数的未定义返回类型。
function emitEvent(eventname){
eventEmitter.emit(SIV_EVENT);
}
console.log(emitEvent());
在此处检查未定义, https://nodejs.org/api/util.html 。
为了避免看到undefined
使用节点的时候,从命令的输出repl
模块,设置ignoreUndefined
到true
的repl.start
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.