最近我在我的 Windows 7 机器上安装了 node.js。
在执行 JavaScript 时,我收到一条未定义的消息以及表达式的成功执行。
这里有什么问题?我没有注意到任何其他副作用。
最近我在我的 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
从module内部打开,您可以使用以下行来模拟AvinashB的答案,而无需自己在控制台中输入:
process.stdin.emit('data', "module.exports.repl.ignoreUndefined = true;\n");