使用console.log
和console.info
有什么好处?或者其他任何控制台命令?
console.info("info");
console.error("error");
console.warn("warn");
VS
console.log("log");
我认为它可能会改变输出的颜色或连接某种标签,但它们似乎都做同样的事情。根据这里的文档:
https://nodejs.org/api/console.html#console_console_info_data
他们似乎都和console.log
一样
根据您链接的文档,console.error
和console.warn
输出到stderr
。其他人输出到stdout
。
如果你正在从node.js
进行管道或重定向,差异很重要。
编写了很多JavaScript以在浏览器和Node.js
中运行。让节点实现完整控制台可以实现更高的代码交叉兼容性。
在大多数浏览器中,不仅可以使用不同的颜色登录,还可以过滤以查看特定的消息。
console.info("info");
console.error("error");
console.warn("warn");
console.log("log");
console.log()比console.info()短
它们是同一个东西,这是唯一的优势
根据docs,它很清楚。
console.info([data],[...])#与console.log相同。
console.error([data],[...])#与console.log相同,但打印到stderr。
console.warn([data],[...])#与console.error相同。
这意味着没有任何好处或缺点。 info
== log
,和warn
== error
。除非您想要打印到stderr
,info
和/或log
才有效。
在视觉上,console.log
,console.info
,console.warn
以及console.error
在服务器端(终端)之间没有差别。
然而,有lightweight modules分别为console.info
,console.warn
以及console.error
添加蓝色,橙色和红色。这样,控制台API的行为就像客户端一样。
npm i console-info console-warn console-error --save-dev;
虽然console.log和console.info可能没有什么不同,但除了着色之外还有其他用途。例如,当使用像eslint这样的linter时,可以设置console.log来提供警告消息。假设您只想将console.log用于开发目的,并使用console.info获取最终用户可能需要的信息。通过linter,您现在可以直观地提醒您在开发期间帮助您的临时console.logs,但必须在提交/发布之前将其删除。
除了接受的答案之外还有一个细节:在Chrome和FireFox中,console.info
日志行以小i图标为前缀,而console.log
行则不是。 warn
和error
线分别以小三角形和x为前缀。
stdin用于读取用户输入的可读流。
stdout可写流,可以同步或异步。
stderr用于错误消息的阻塞同步可写流。
stdout或非阻塞函数是:console.log,console.info,util.puts,util.print和Stderr。
阻塞功能包括:console.warn,console.error,util.debug和process.stdin(用于获取用户输入的可读流)。