【发布时间】:2012-01-17 10:44:52
【问题描述】:
最近我在我的 Windows 7 机器上安装了 node.js。
在执行 JavaScript 时,我收到一条 undefined 消息以及表达式的成功执行。
这里有什么问题?我没有注意到任何其他副作用。
【问题讨论】:
-
这能回答你的问题吗? node.js REPL "undefined"
标签: javascript node.js console undefined
最近我在我的 Windows 7 机器上安装了 node.js。
在执行 JavaScript 时,我收到一条 undefined 消息以及表达式的成功执行。
这里有什么问题?我没有注意到任何其他副作用。
【问题讨论】:
标签: javascript node.js console undefined
JavaScript 函数总是返回一些东西。如果您没有在函数中指定要返回的内容,则默认返回“未定义”(您也可以在 Firebug 中查看)。
不过不用担心,这不会影响任何事情,您可以忽略它。
【讨论】:
只需写"hello world"; 并按回车键...它将返回"hello world" 而不是undefined,因此不会显示undefined。 console.log 返回 undefined 并将参数记录到控制台,以便您收到多条消息。
【讨论】:
undefined
正如其他人所指出的,如果您不指定任何返回值,javascript 函数将始终返回 undefined。你可以忽略它。它不会造成任何伤害。 但是如果它太烦你了,那么你可以在 repl 中关闭它。 Repl 有这个属性 ignoreUndefined 默认设置为 false。您可以将其设置为 true。 试试这个:
module.exports.repl.ignoreUndefined = true;
【讨论】:
如果您需要在模块内部打开ignoreUndefined,您可以使用以下行来模拟AvinashB的答案,而无需自己在控制台中输入:
process.stdin.emit('data', "module.exports.repl.ignoreUndefined = true;\n");
【讨论】:
好吧,这个问题是几年前提出的,但还有另一种方式来解释这里发生的事情。
尝试下一个命令:
console.log("Hello World") || "Bye World";
如前所述,函数console.log() 通常返回undefined,您可以选择更好的返回值。由于非严格(抽象)比较认为undefined 等于false,|| 运算符允许您选择。
考虑到它只是一个调试工具,这在一般使用中是不必要的,但有助于理解控制台显示发送到标准输出的文本并评估命令和显示 返回值,如果没有收到值,则返回 undefined。
【讨论】:
node 也会打印 undefined,因为 IN GENERAL,它会显示每个命令的返回值,而 console.log 不会返回任何内容。
【讨论】:
这是因为 console.log 有 (null/undefined) 返回类型 解决这个问题..有一个返回字符串的函数.. 然后记录该函数的返回值... 这将克服未定义的问题..
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。
【讨论】:
为避免在使用 Node 的 repl 模块时从命令中看到 undefined 输出,请将 repl.start 中的 ignoreUndefined 设置为 true。
【讨论】: