js中的console.log()和console.error()有什么区别



在node.js中看一些关于promise的视频时,这个家伙使用console.error((打印他知道会出错的东西,并使用console.log((打印其他东西。除了用不同的颜色打印东西之外,这两种功能之间还有什么主要区别吗?

console.error()写入stderr,而console.log()写入stdout,如文档中所述。

在nodejs的默认运行中,stdoutstderr都会进入控制台,但很明显,它们可以指向不同的地方,也可以使用不同的方法。例如,当使用诸如forever之类的工具时,这两个流被记录到单独的日志文件中,以便可以分别检查它们。

假设console.error()可能包含更严重的信息,可能需要单独查看,但这实际上取决于您在自己的程序中如何使用console.log()console.error()

以下是基于不同方面对console.log((和console.error((之间差异的一些详细描述。

1.定义

Console.log((

添加在:v0.1.100中。
使用换行符打印到stdout。可以传递多个参数,第一个用作主消息,所有其他参数用作替换值,类似于printf(3((参数都传递给util.format()(。

控制台.error((

添加在:v0.1.100中。
使用换行符打印到stderr。可以传递多个参数,第一个用作主消息,所有其他参数用作替换值,类似于printf(3((参数都传递给util.format()(。

2.语法

Console.log((

console.log(obj1 [, obj2, ..., objN]);
console.log(msg [, subst1, ..., substN]);    

控制台.error((

console.error(obj1 [, obj2, ..., objN]);
console.error(msg [, subst1, ..., substN]);
console.exception(obj1 [, obj2, ..., objN]);
console.exception(msg [, subst1, ..., substN]);    

3.参数

Console.log((

(i( 要输出的JavaScript对象的列表。每个对象的字符串表示都按照列出和输出的顺序附加在一起。

obj1 ... objN

(ii(包含零个或多个替换字符串的JavaScript字符串。

msg

(iii(用于替换msg中的替换字符串的JavaScript对象。这为您提供了对输出格式的额外控制。

subst1 ... substN

控制台.error((.

注意:console.exception((是console.error((的别名;它们在功能上是相同的。

(i( 要输出的JavaScript对象的列表。每个对象的字符串表示都按照列出和输出的顺序附加在一起。

obj1 ... objN

(ii(包含零个或多个替换字符串的JavaScript字符串。

msg

(iii(用于替换msg中的替换字符串的JavaScript对象。这为您提供了对输出格式的额外控制。

subst1 ... substN

4.浏览器兼容性

Console.log((Console.error((两者与所有流行的浏览器具有几乎相同的兼容性
注意:

(i( 在版本28中的google chromeSubstitution strings的情况下,如果将负值传递给%d,它将被四舍五入到最接近的负整数,因此-0.1变为-1。

(ii(Substitution strings两者都使用internet explorer(10(%c不受支持,当%d不是数字时,它将呈现为0

Stdout是缓冲的,而stderr不是。

最新更新