近期在对博客主题中的控制台输出做修改优化,发现 console.log 可以有挺多的玩法,记录一下以供后续改进。

不同的环境可能会有所差异,本文使用环境为 Microsoft Edge 124.0.2478.97 ,具体显示效果需自行体验。

基本说明

console输出函数

console 常用输出函数有以下几种:

类型 函数 说明
通用 console.log(...) 直接输出内容,差别在于输出的颜色与图标不同
console.debug(...)
console.info(...)
console.warn(...)
console.error(...)
表格 console.table(obj) 将两层嵌套的对象显示为table
时间差 console.time(str) 标记开始时间
console.timeEnd(str) 与开始时间做差值显示
断言 console.assert(bool, ...) 第一个参数为 false 时显示
次数 console.count(str) 显示出现次数
层级 console.group(str) 开始按层级显示
groupCollapsed(str) console.group() ,显示为折叠状态
console.groupEnd() 结束层级
对象 console.dir(obj) 显示对象,同占位符里的 %O
1
2
3
4
5
console.log("log");
console.debug("debug");
console.info("info");
console.warn("warn");
console.error("error");

效果

console通用显示效果

1
2
3
4
console.table({
"a":{1:"test1",2:"test2"},
"b":{1:"test3",2:"test4"}
})

效果

console表格显示效果

1
2
console.time("test");
setTimeout(() => console.timeEnd("test") ,1000);

效果

console时间差显示效果

1
console.assert(1 === 4, "1不等于4");

效果

console断言显示效果

1
2
3
for(let i = 0; i < 3; i++) {
console.count("次数");
}

效果

console次数显示效果

1
2
3
4
5
6
7
8
9
console.group("1");
console.log("1-1");
console.log("1-2");
console.group("1-3");
console.log("1-3-1");
console.log("1-3-2");
console.groupEnd();
console.log("1-4");
console.groupEnd();

效果

console层级显示效果

1
console.dir(document.body);

效果

console对象显示效果

占位符

console.log() 等可以使用 C 语言 printf() 风格的占位符,总共支持以下五种

占位符 描述
%s 字符串
%i%d 整数
%f 浮点数
%o%O 对象,对于DOM节点输出不一样
%c 样式,作用范围到下一个 %c 或字符结尾

进阶

显示样式

控制台可以根据设置的样式显示不同的效果,每个 %c 需要对应一种样式,否则可能直接输出字符 “%c” 或 错位显示。

目前已尝试可以使用的样式类型:

类型 css 备注
字体 color
font 以及其每种属性 font: font-style font-weight font-size/line-height font-family;
背景 background 以及其每种属性 常用的如:
background-color
background-image (chrome需要用base64图片格式代替网址)
background-repeat
background-size
边框 border 以及其每种属性 border: border-width border-style border-color;
border-top等每个方向同
border-radius
border-image
边距 padding padding-top等每个方向同
margin margin-top等每个方向同
  1. 图片logo可以使用 background-image 相关属性处理;
  2. 纯文字logo可以直接多行输出配上样式即可,以下是一些艺术字的生成网页,可以根据需要选择喜欢的艺术字作为logo: