一切福田,不離方寸,從心而覓,感無不通。

领导被我的花式console.log吸引了!直接写入公司公共库!

背景简介

这几天代码评审,领导无意中看到了我本地代码的控制台,被我花里胡哨的console打印内容吸引了!

老板看见后,说我这东西有意思,花里胡哨的,他喜欢!

但是随即又问我,这么花里胡哨的东西,上生产会影响性能吧?我自信的说:不会,代码内有判断的,只有开发环境会打印

老板很满意,于是让我给其他前端同事分享一下,讲解下实现思路!最终,这个方法还被写入公司的公用utils库里,供大家使用!

console简介

console 是一个用于调试和记录信息的内置对象, 提供了多种方法,可以帮助开发者输出各种信息,进行调试和分析。

console.log()

用于输出一般信息,大家应该在熟悉不过了。

console.info() :

输出信息,与 console.log 类似,但在某些浏览器中可能有不同的样式。

console.warn() :

输出警告信息,通常会以黄色背景或带有警告图标的样式显示。

console.error() :

输出错误信息,通常会以红色背景或带有错误图标的样式显示。

console.table() :

以表格形式输出数据,适用于数组和对象。

例如:

 

通过上述介绍,我们可以看出,原生的文本信息、警告信息、错误信息、数组信息打印出来的效果都很普通,辨识度不高!现在我们通过console.log来实现一些花里花哨的样式!

技术方案

console.log()

console.log() 可以接受任何类型的参数,包括字符串、数字、布尔值、对象、数组、函数等。最厉害的是,它支持占位符!

常用的占位符:

  • %s – 字符串
  • %d or %i – 整数
  • %f – 浮点数
  • %o – 对象
  • %c – CSS 样式

格式化字符串

console.log() 支持类似于 C 语言 printf 函数的格式化字符串。我们可以使用占位符来插入变量值。


 

添加样式

可以使用 %c 占位符添加 CSS 样式,使输出内容更加美观。


 

自定义样式的实现,其实主要是靠%c 占位符添加 CSS 样式实现的!

实现美化的信息打印

基础信息打印

我们创建一个prettyLog方法,用于逻辑编写

 

上述代码定义了一个 prettyLog 函数,用于美化打印信息到控制台。通过自定义样式,输出信息以更易读和美观的格式呈现。

我们使用一下看看效果


 

info 方法用于输出信息级别的日志。它接受两个参数:textOrTitle 和 content。如果只提供一个参数,则视为内容并设置默认标题为 Info;如果提供两个参数,则第一个参数为标题,第二个参数为内容。最后调用 prettyPrint 方法进行输出。

错误信息打印


 

成功信息与警告信息打印


 

实现图片打印


 

上述代码参考了其他文章:Just a moment…

url可以传支持 base64,如果是url链接,图片链接则必须开启了跨域访问才能打印

实现美化的数组打印

打印对象或者数组,其实用原生的console.table比较好


 

当然,我们也可以伪实现


 

但是,我们无法控制表格的宽度,因此,这个方法不太好用,不如原生。

仅在开发环境使用


 

我们可以通过import.meta.env.MODE 判断当前环境是否为生产环境,在生产环境,我们可以禁用信息打印!

完整代码


 

 

作者:石小石Orz
链接:https://juejin.cn/post/7371716384847364147
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。