JS问题:简单的console.log不要再用了!试试这个

前端功能问题系列文章,点击上方合集↑

序言

大家好,我是大澈!

本文约1500+字,整篇阅读大约需要3分钟。

本文主要内容分三部分,如果您只需要解决问题,请阅读第一、二部分即可。如果您有更多时间,进一步学习问题相关知识点,请阅读至第三部分。

感谢关注微信公众号:"程序员大澈",然后加入问答群,从此让解决问题的你不再孤单!

1. 需求分析

一般情况下,我们在项目中进行代码调试时,往往只会在逻辑中使用console.log进行控制台打印调试。

这种方式虽然比较常规直接,但是如果打印数据多了,就会导致你的控制台消息变得异常混乱。

所以,我们有了更好的选择,那就是console对象提供的其它API,来让我们能够更清晰的区分打印信息。

2. 实现步骤

2.1 console.warn

当我们需要区分一些比较重要的打印信息时,可以使用warn进行警告提示。

2.2 console.error

当我们需要区分一些异常错误的打印信息时,可以使用error进行错误提示。

2.3 console.time/timeEnd

想看看一段代码运行需要多长时间,可以使用time。

这对于需要一些时间的CPU密集型应用程序非常有用,例如神经网络或 HTML Canvas读取。

下面执行这段代码:

javascript 复制代码
console.time("Loop timer")
for(let i = 0; i < 10000; i++){
    // Some code here
}
console.timeEnd("Loop timer")

结果如下:

2.4 console.trace

想看看函数的调用顺序是怎样的吗?可以使用trace。

下面执行这段代码:

scss 复制代码
<script setup>
  function trace(){
    console.trace()
  }
  function randomFunction(){
      trace();
  }
  randomFunction()
</script>

在setup中,randomFunction 调用trace,然后又调用console.trace。

因此,当您调用 randomFunction 时,您将得到类似的输出,结果如下:

2.5 console.group/groupEnd

当我们需要将一类打印信息进行分组时,可以使用group。

下面执行这段代码:

javascript 复制代码
console.group("My message group");

console.log("Test2!");
console.log("Test2!");
console.log("Test2!");

console.groupEnd()

结果如下:

2.6 console.table

在控制台中打印表格信息,可以使用table。

对!你没听错,就是让我们以表格形式展示打印信息。

如果使用log打印:

ini 复制代码
var person1 = {name: "Weirdo", age : "-23", hobby: "singing"}
var person2 = {name: "SomeName", age : "Infinity", hobby: "programming"}

console.log(person1, person2);

结果如下:

这样做是不是让数据看起来很混乱。

反之,如果我们使用table输出:

css 复制代码
var person1 = {name: "Weirdo", age : "-23", hobby: "singing"}
var person2 = {name: "SomeName", age : "Infinity", hobby: "programming"}

console.table({person1, person2})

结果如下:

怎么样!从来不知道控制台可以看起来如此干净,对吧!

2.7 console.clear

最后,使用clear把控制台清空吧!

3. 问题详解

3.1 可以自定义log的样式吗?

答案当然是可以的,只需要借助%c这个占位符。

%c 是console的占位符,用于指定输出样式或应用 CSS 样式到特定的输出文本。

但请注意,%c 占位符只在部分浏览器中支持,如 Chrome、Firefox 等。

通过使用 %c 占位符,可以在 console.log 中为特定的文本应用自定义的 CSS 样式。这样可以改变输出文本的颜色、字体、背景等样式属性,以便在控制台中以不同的样式突出显示特定的信息。

以下是使用%c 占位符应用样式的示例:

css 复制代码
console.log("%c Hello, World!", 
  "color: red; font-weight: bold;border: 1px solid red;");

结果如下:

通过使用 %c 占位符和自定义的样式规则,可以在控制台输出中以不同的样式突出显示特定的文本,使得输出更加清晰和易于识别。

这在调试和日志记录过程中非常有用,特别是当需要突出显示特定类型的信息或错误时。

结语

建立这个平台的初衷:

  • 打造一个仅包含前端问题的问答平台,让大家高效搜索处理同样问题。
  • 通过不断积累问题,一起练习逻辑思维,并顺便学习相关的知识点。
  • 遇到难题,遇到有共鸣的问题,一起讨论,一起沉淀,一起成长。

感谢关注微信公众号:"程序员大澈",然后加入问答群,从此让解决问题的你不再孤单!

相关推荐
panxianren2 小时前
Bun 1.4 的 bun test --parallel 将 4 秒的测试套件缩短到约 1 秒
java·javascript
可乐鸡翅yeah_5 小时前
FFmpeg 生成 HLS 独立分片 independent‑segments 参数到底有什么用
javascript·ffmpeg·音视频·safari·m3u8
福兮说5 小时前
canvas 旋转图片的六个坑:四角被裁、Math.ceil 多出 1px 黑边、JPG 角发黑、翻转方向反了
前端·javascript·图像处理·canvas
Ai-_Man6 小时前
您您这可以把Grok的多个会话比如说。左侧的多个会话一次性导出吗?不是单条会话里面的多次会对话。AI导出鸭
javascript·人工智能·ai·小程序·电脑
传人once6 小时前
多图片上传预览功能如何写
前端·css·html·jquery·html5
liangshanbo12157 小时前
JavaScript 异步核心主线
javascript·事件循环·异步操作
传人once8 小时前
悬停旋转放大和位移效果如何写
javascript·css·动画
默_笙10 小时前
🍔 中间件不只是打日志:四个钩子、一次短路,和自带的工具
前端·javascript
Dovis(誓平步青云)11 小时前
家里设备越来越多,如何用一张空间地图控制灯光和温度![
android·java·前端·javascript·人工智能·电脑
xieter11 小时前
【技术精选】TypeScript 高级类型体操:条件类型与模板字面量深度剖析 (2026-10-06)
javascript