【问题标题】:Difference between console.log and sys.puts in node.js?node.js中console.log和sys.puts的区别?
【发布时间】:2023-03-22 11:14:01
【问题描述】:

在 node.js 中,您可以使用 console.logsys.puts 打印到屏幕上。

首选方法是什么,它们之间有什么区别?

【问题讨论】:

    标签: javascript console node.js


    【解决方案1】:

    sys.puts 只是在日志中打印给定的字符串。

    但如果你想打印一个更复杂的对象(数组、JSON、JSObject),你必须使用console.log,因为你想“查看”对象的内部。

    sys.puts 例如只会给你“[object object]”。

    【讨论】:

    • 是的,但是您不必使用控制台日志来查看对象。 sys.puts("详细检查这个时髦的对象:" + sys.inspect(yourobject));
    【解决方案2】:

    两者都只是写入标准输出流。区别在于sys.puts 只是toString 的第一个参数,而console.log 接受多个参数,如果不是字符串,sys.inspect 将作为第一个参数。

    【讨论】:

    • sys.inspect 现在是util.inspect
    • 其实console是用来打印到stdout和stderr流的。
    【解决方案3】:

    Puts 自 0.2.3 版起已弃用

    【讨论】:

    • 请通过链接到您找到信息的位置引用来源。
    • 说到弃用,看起来'sys'模块已经变成了'util'模块。 puts() 方法仍然存在,但 utils.p() 会打印一个弃用的警告。
    • @xer0x : 'sys' 模块被重命名为 'util'。这是对 require('sys') 的修复 #3577
    【解决方案4】:

    您也可以在不需要 sys 模块的情况下使用 console.log。

    【讨论】:

      【解决方案5】:
      console.dir(objectToInspect)
      

      这可能是检查对象的另一种方式。

      【讨论】:

        【解决方案6】:
        sys.puts([...]);
        

        是一个同步输出函数。简而言之,它是 Node.js 语言中的阻塞函数。

        console.log([data], [...]);
        

        使用换行符打印到标准输出。

        更多信息:

        http://nodejs.org/api/stdio.html#stdio_console_log_data

        http://nodejs.org/api/util.html#util_util_puts

        注意:“sys”模块已重命名为“util”(link 支持)这是一个修复 #3577

        【讨论】:

          【解决方案7】:

          首选方法是console.log()sys.puts() 已被删除。


          sys 模块在 2010 年 10 月 12 日被重命名为 utilcommit。所以sys.puts() 变成了util.puts()util.puts() 在 v0.3.0 中添加,自 v0.11.3 起弃用,并在 v12.0.0 中删除。 documentation 建议改用console.log()

          【讨论】:

            猜你喜欢
            • 2011-06-25
            • 2013-03-15
            • 2020-02-03
            • 2021-09-07
            • 2014-03-19
            • 1970-01-01
            • 2016-06-11
            • 2017-06-07
            • 1970-01-01
            相关资源
            最近更新 更多