console 对象提供对浏览器控制台的接入,最常用的是 console.log(),但是实际上 console 对象上还有很多有用的函数可以帮助调试。
使用 console 对象可以执行这些任务:
- 输出一个定时器来帮助简单的基准测试
- 输出一个表,以便于阅读的格式显示数组或对象
- 使用
CSS将颜色和其他样式选项应用于输出
console 并不是标准的特性,在不同浏览器上的工作方式是不一样的,这里主要针对 Chrome 和 Firefox 介绍一些大都会提供的接口特性。
输出文本
这是最常用的一组接口,在各个框架也常使用的,在控制台输出日志,警告错误等。简单输出文本的接口有这四种:
- log
- info
- warn
- error
这四个接口的工作方法一致,接收多个参数,展示效果如下:

字符串替换
字符串替换允许使用其他内容替换输出中的指定字符串,比如:
console.log('string %s', 'substitutions'); |
支持的字符串替换有以下几种:
%s:使用字符串替换%(d|i):使用整数替换%(f|.nf):使用浮点数替换%(o|O):元素被作为对象替换%c:应用提供的css
看几个例子:
var obj = { hello: 'hello' } |
使用 %c 可以让文本呈现出指定的 css 样式,比如我们定义了成功的消息用红色背景,失败的消息用绿色背景:
const success = [ |

当然注意到样式在不同浏览器下有很大的差别,有些样式在其他浏览器并不被支持。
断言(console.assert())
console.assert(assertion, obj1 [, obj2, …, objN])
如果断言为 false ,则将一个错误消息写入控制台,写入方式是 console.error 。如果断言是 true ,不执行任何操作。
let isTrue = false; |
树形展示对象(console.dir())
console.dir(object);
将一个 JavaScript 对象的属性和属性值显示成一个可交互的列表,点击折叠的小三角形可以查看各子属性的内容。

树形展示DOM 的 html 结构(console.dirxml())
console.dirxml(object);
显示一个明确的 XML/HTML 元素的包括所有后代元素的交互树。 如果无法作为一个 element 被显示,那么会以 JavaScript 对象的形式作为替代。点击折叠的小三角形可以查看各子属性的内容。

表格(console.table())
console.table(object)
把数组或者对象用表格呈现:
console.table(['Javascript', 'PHP', 'Perl', 'C++']); // on firefox |
呈现效果如下:

使用表格查看对象:
function Person(firstName, lastName) { |
呈现效果如下:

限制列:
console.table(family, ["firstName"]); |

分组(console.group())
console.group(label)
console.groupCollapsed(label)
console.groupEnd(label)
在 Web 控制台上创建一个新的分组,随后输出到控制台上的内容都会被添加一个缩进,表示该内容属于当前分组,直到调用 console.groupEnd() 之后,当前分组结束。
console.group('outer'); |

console.groupCollapsed 创建一个默认折叠的分组。
计时(console.time())
console.time(label)
console.timeEnd(label)
追踪某一操作的执行时间,使用 timeEnd 结束:
console.time('loop'); |
计数(console.count())
console.count(label)
输出 count() 被调用的次数。此函数接受一个可选参数 label。
var user = ""; |
堆栈跟踪(console.trace())
console.trace(obj1[, obj2…]);
从函数调用的位置输出一个调用堆栈追踪:
function foo() { |
