十个很少使用的 JavaScript Console 方法

你一定听说过 console.log() ,而且可能一直在使用它 。它非常流行,在集成开发环境中键入时,Visual Studio Intellicode 等工具通常会在其他控制台方法之前推荐使用它 。
在本文中,我们将探讨一些最有用的控制台方法,以及它们在数据可视化、调试等方面的用途 。
1. table()当你需要在代码中以表格形式(如对象数组)显示一组对象时, console.table() 方法就会派上用场 。以汽车列表为例:
const cars = [{color: 'red',age: 4,maxSpeed: 120,},{color: 'blue',age: 2,maxSpeed: 100,},{color: 'yellow',age: 3,maxSpeed: 160,},];如何在控制台中检查它们? console.log() 是一种典型的方法:
console.log(cars);在 Chrome 浏览器开发者控制台中,我们可以检查我们记录的对象的各种属性,层次不限 。

十个很少使用的 JavaScript Console 方法

文章插图
图片
我们可以在 Node.js 终端中查看属性,还可以获得色彩:
十个很少使用的 JavaScript Console 方法

文章插图
图片
这是一种可以接受的方法,但 console.table() 方法提供了一种更优雅的替代方法:
console.table(cars);console.table() 在 Chrome 浏览器控制台中:
十个很少使用的 JavaScript Console 方法

文章插图
图片
console.table() in Node.js Node.js 中的
十个很少使用的 JavaScript Console 方法

文章插图
图片
顾名思义,它以易于理解的表格形式呈现数据,就像电子表格一样 。它也适用于数组阵列 。
const arr = [[1, 3, 5],[2, 4, 6],[10, 20, 30],];console.table(arr);
十个很少使用的 JavaScript Console 方法

文章插图
图片
2. assert()console.assert() 非常适合调试目的,它接收断言,并在断言为 false 时向控制台写入错误信息 。但如果是 true ,则不会发生任何事情:
const num = 13;console.assert(num > 10, 'Number must be greater than 10');console.assert(num > 20, 'Number must be greater than 20');第一个断言通过是因为 num 大于 10 ,所以控制台只显示第二个断言:
十个很少使用的 JavaScript Console 方法

文章插图
图片
3. trace()console.trace() 可以帮助您在调用它的位置输出当前堆栈跟踪 。例如
function a() {b();}function b() {c();}function c() {console.trace();}a();
十个很少使用的 JavaScript Console 方法

文章插图
图片
4. error()error() 可能是第二种最常用的 Console 方法 。在 Chrome 浏览器控制台中,它会以独特的红色显示错误信息 。
console.error('This is an error message.');console.log('This is a log message.');
十个很少使用的 JavaScript Console 方法

文章插图
图片
不过,在 Node.js 中不会有这种颜色分离:
十个很少使用的 JavaScript Console 方法

文章插图
图片
不过,信息在内部被写入不同的位置 。 console.error() 写入 stderr 流,而 console.log() 写入 stdout 流 。你可以使用process.stderr和 process.stdout 访问这些流 。这对于将错误信息和信息重定向到不同的文件非常有用,就像我们在下面的代码示例中所做的那样 。
const fs = require('fs');const errorFs = fs.createWriteStream('./error-log.txt');process.stderr.write = errorFs.write.bind(errorFs);const infoFs = fs.createWriteStream('./info-log.txt');process.stdout.write = infoFs.write.bind(infoFs);console.error('This is an error message.');console.log('This is a log message.');运行此代码时,传递给 error() 和log()的信息将输出到相应的文件,而不是控制台 。
5. warn()console.warn() 在 Chrome 浏览器控制台中输出黄色信息,表示警告 。
console.warn('This is a warning message');
十个很少使用的 JavaScript Console 方法

文章插图
图片
在 Node.js 中,信息会像 console.error() 一样写入 stderr 流 。
6. count() 和 countReset()console.count() 记录当前调用 count() 的执行次数 。这是另一个有用的调试工具 。
function shout(message) {console.count();return message.toUpperCase() + '!!!';}shout('hey');shout('hi');shout('hello');


推荐阅读