编辑
2025-09-24
NodeJs
00

目录

基本用法
console.log()
console.error()
console.warn()
console.info()
占位符
字符串拼接
打印对象和数组
console.dir()
console.table()
计时器
console.time(), console.timeEnd()
console.timeLog()
计数器
console.count(), console.countReset()
堆栈追踪
console.trace()
清空控制台
console.clear()
自定义输出流
结论

在 Node.js 中,console 对象是用于打印标准输出(input)和标准错误流(error)的工具。虽然它的基本功能类似于浏览器中的 console 对象,但在一些方面它提供了更强大的功能。本文将详细介绍 Node.js 中 console 对象的使用,涵盖各种功能及其实际应用例子。

基本用法

console.log()

这是最常用的方法,用于打印普通消息到标准输出。

JavaScript
console.log("Hello, World!");

console.error()

用于打印错误消息到标准错误流。

JavaScript
console.error("This is an error message");

console.warn()

用于打印警告信息,同样会输出到标准错误流。

JavaScript
console.warn("This is a warning message");

console.info()

类似 console.log(),但更适合用于提示性信息。

JavaScript
console.info("Informational message");

占位符

console 方法支持字符串占位符:

  • %s - 字符串
  • %d - 数字
  • %i - 以整数形式的数字
  • %f - 以浮点数形式的数字
  • %o - 对象
  • %j - JSON
JavaScript
console.log("Hello, %s. You have %d unread messages.", "Alice", 5);

image.png

字符串拼接

当然,我们也可以使用字符串拼接来实现相同的功能:

JavaScript
console.log("Hello, " + "Alice. You have " + 5 + " unread messages.");

打印对象和数组

console.dir()

详细打印对象的内容,options 参数可以定制输出的深度、颜色等。

JavaScript
const obj = { name: "Alice", age: 25, friends: { best: "Bob", good: "Charlie" } }; console.dir(obj, { depth: null, colors: true });

image.png

console.table()

以表格形式打印数组和对象数组的数据。

JavaScript
const people = [ { name: "Alice", age: 25 }, { name: "Bob", age: 30 }, { name: "Charlie", age: 35 } ]; console.table(people);

image.png

计时器

console.time(), console.timeEnd()

用于测量代码执行时间,给定相同的标签即可。

JavaScript
console.time("Array initialization"); let arr = new Array(1000000).fill(0); console.timeEnd("Array initialization");

console.timeLog()

可以在计时器运行过程中记录当前已用时间。

JavaScript
console.time("Process"); setTimeout(() => { console.timeLog("Process", "halfway"); }, 1000); setTimeout(() => { console.timeEnd("Process"); }, 2000);

计数器

console.count(), console.countReset()

用于记录代码块或函数的调用次数。

JavaScript
function greet(name) { console.count("Greeted"); console.log(`Hello, ${name}`); } greet("Alice"); greet("Bob"); console.countReset("Greeted"); greet("Charlie");

image.png

堆栈追踪

console.trace()

用于打印当前的堆栈追踪,可以帮助定位代码执行的位置。

JavaScript
function a() { function b() { console.trace("Tracing in function b()"); } b(); } a();

清空控制台

console.clear()

用于清空控制台输出(在某些环境下并不生效)。

JavaScript
console.log("This message will be cleared"); console.clear();

自定义输出流

你可以创建一个自定义的 console 实例来输出到特定的流中,比如文件或者网络。

JavaScript
const fs = require('fs'); const output = fs.createWriteStream('./stdout.log'); const errorOutput = fs.createWriteStream('./stderr.log'); const logger = new console.Console(output, errorOutput); logger.log("This is a message in the log file."); logger.error("This is an error message in the error log file.");

image.png

结论

Node.js 中的 console 对象不仅限于简单的日志记录,它提供了一系列强大而灵活的工具,帮助开发者更有效地调试和监控应用程序。希望本文能帮助你全面理解并运用 console 对象的各种功能。

本文作者:技术老小子

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!