【问题标题】:node.js displays "undefined" on the consolenode.js 在控制台上显示“未定义”
【发布时间】:2012-01-17 10:44:52
【问题描述】:

最近我在我的 Windows 7 机器上安装了 node.js。

在执行 JavaScript 时,我收到一条 undefined 消息以及表达式的成功执行。

这里有什么问题?我没有注意到任何其他副作用。

【问题讨论】:

标签: javascript node.js console undefined


【解决方案1】:

JavaScript 函数总是返回一些东西。如果您没有在函数中指定要返回的内容,则默认返回“未定义”(您也可以在 Firebug 中查看)。

不过不用担心,这不会影响任何事情,您可以忽略它。

【讨论】:

  • +1。谢谢回复。有没有办法摆脱'undefined',语法应该是什么?
  • 如果你制作一个程序(网络应用程序或命令行),你永远不会得到“飞行”未定义,所以不用担心。
  • 当我不输入任何函数或任何字符时;然后还会显示“未定义”。你能解释一下幕后发生的事情吗?
  • 幕后发生了什么。例如输入 asdasd 并看到此错误:在 REPLServer.eval (repl.js:80:21) ... 所以在幕后有一个 eval() 函数返回“未定义”。
  • 谢谢。现在明白了 :) 我应该开始研究事物是如何实现的,而不仅仅是如何让它发挥作用。
【解决方案2】:

只需写"hello world"; 并按回车键...它将返回"hello world" 而不是undefined,因此不会显示undefinedconsole.log 返回 undefined 并将参数记录到控制台,以便您收到多条消息。

【讨论】:

  • 感谢 Esailija。当我不输入任何功能或任何字符时;然后还会显示“未定义”。你能解释一下幕后发生的事情吗?
  • @SandeepGB,如果没有任何输入,您有什么期望? :P 不输入任何内容的返回值最有意义的是undefined
  • 我试图了解发生了什么。 alessioalex 回答了我的问题 :)
【解决方案3】:

正如其他人所指出的,如果您不指定任何返回值,javascript 函数将始终返回 undefined。你可以忽略它。它不会造成任何伤害。 但是如果它太烦你了,那么你可以在 repl 中关闭它。 Repl 有这个属性 ignoreUndefined 默认设置为 false。您可以将其设置为 true。 试试这个:

module.exports.repl.ignoreUndefined = true;

【讨论】:

    【解决方案4】:

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

    process.stdin.emit('data', "module.exports.repl.ignoreUndefined = true;\n");
    

    【讨论】:

      【解决方案5】:

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

      尝试下一个命令:

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

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

      考虑到它只是一个调试工具,这在一般使用中是不必要的,但有助于理解控制台显示发送到标准输出的文本并评估命令和显示 返回值,如果没有收到值,则返回 undefined。

      【讨论】:

      • 嗨@Melo,我认为这段代码可以重写为更好的 console.log("Hello World") || “再见世界”。
      【解决方案6】:

      node 也会打印 undefined,因为 IN GENERAL,它会显示每个命令的返回值,而 console.log 不会返回任何内容。

      【讨论】:

        【解决方案7】:

        这是因为 console.log 有 (null/undefined) 返回类型 解决这个问题..有一个返回字符串的函数.. 然后记录该函数的返回值... 这将克服未定义的问题..

        const addNotes= function(msg)
        {
            return msg;
        }
        console.log(addNotes('say hello'));
        

        【讨论】:

          【解决方案8】:

          忽略它,完全不用担心。当我调用没有任何返回类型的函数时,我也遇到了同样的问题。所以节点用来打印被调用函数的未定义返回类型。

          function emitEvent(eventname){
              eventEmitter.emit(SIV_EVENT);
          }
          console.log(emitEvent());
          

          在这里检查未定义,https://nodejs.org/api/util.html

          【讨论】:

            【解决方案9】:

            为避免在使用 Node 的 repl 模块时从命令中看到 undefined 输出,请将 repl.start 中的 ignoreUndefined 设置为 true

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2016-06-03
              • 1970-01-01
              • 2020-12-08
              • 2021-04-25
              相关资源
              最近更新 更多