JavaScript中的7个逆天console方法,你绝对想不到
在 JavaScript 中,console 不仅仅只有 log
error
和 warn
方法。
![38d84c189432d7a89aaea2e4e704e6ac.webp](https://filescdn.proginn.com/5512b2c5361e08c20df00f7cbd60b351/38d84c189432d7a89aaea2e4e704e6ac.webp)
实际上console有20多个这样的方法。
它们的功能不仅仅是记录文本,它还包括彩色数据可视化、调试、性能测试等等。
让我们看看另外7个强大的方法
1. table()
-
console.table()
: 可以很轻松的将对象数组显示为表格,每个对象一行,每个属性一列。
![bdd8788dba808d781891ac70c145153f.webp](https://filescdn.proginn.com/e41257a6dbc4cfcca0b60039ff67a4b8/bdd8788dba808d781891ac70c145153f.webp)
![e76c795c51c0c0584c825579277ce8de.webp](https://filescdn.proginn.com/db4ccab2f4e6fcb520102fac44c58d48/e76c795c51c0c0584c825579277ce8de.webp)
在Node上有些不同:
![c85950799694b441c59da4d0d9b1b103.webp](https://filescdn.proginn.com/3fbc58923a9168423fa54a5038c5f129/c85950799694b441c59da4d0d9b1b103.webp)
明显比使用console.log()
效果更好
![6461e7ee096be276a8d802f872af5085.webp](https://filescdn.proginn.com/5f7706463b2ecaf50a487dfacccc3ba2/6461e7ee096be276a8d802f872af5085.webp)
2. trace()
我们可以使用trace()
来获取我们的调用堆栈,对于调试非常管用。
![8b1e426f73cde2703f055a8dd6833362.webp](https://filescdn.proginn.com/db7ecc8071f2ccb2d7e1a786c7aa7e64/8b1e426f73cde2703f055a8dd6833362.webp)
![5f04fcbf1a75e037a27be7f84a42f5d3.webp](https://filescdn.proginn.com/21179d7d1deef5f0d4f1bff7d849bde5/5f04fcbf1a75e037a27be7f84a42f5d3.webp)
3. count()
console.count()
可以记录当前方法的调用次数。看下面这个示例
![8a4e9fdbf94fc329644d2de97eba22f1.webp](https://filescdn.proginn.com/cde48099f85f35d36040a786ed589744/8a4e9fdbf94fc329644d2de97eba22f1.webp)
console.count()
有一个从0开始的内部计数器。每次调用后,它将计数器加1并记录它...
![f41421a37156e446b871d1bea3f52a03.webp](https://filescdn.proginn.com/bf9b18bf1ccd4774471c945e51fb2042/f41421a37156e446b871d1bea3f52a03.webp)
这里的default
来自哪里呢,这是计数器的标签,在count方法里面有一个内部字典,其中包含每个标签键的计数器值。
console.count()
里面每个新标签从0开始计数,每次调用后,它将计数器加1并记录它...
我们可以使用count()
的第一个参数轻松自定义标签
![2cc576565fe32faeda135e91f7df83b0.webp](https://filescdn.proginn.com/b32240145ae09b653e2b7dc2d632b427/2cc576565fe32faeda135e91f7df83b0.webp)
![d833693794b25a5b211aa8dafaec407d.webp](https://filescdn.proginn.com/608a982672d0964cf2a26be6376bacfd/d833693794b25a5b211aa8dafaec407d.webp)
现在每条消息都有不同的计数。
可以使用countReset()
方法将标签的内部计数器重置为0。
![075857b001c49637c262e43d7ee0a6a1.webp](https://filescdn.proginn.com/e35e0952e9b873d3106054f88a964c46/075857b001c49637c262e43d7ee0a6a1.webp)
![8dff3ad3f6bb6205744d54125253a60b.webp](https://filescdn.proginn.com/41df87d1098bcd5659424c490669c03b/8dff3ad3f6bb6205744d54125253a60b.webp)
4. clear()
console.clear() 方法会清空控制台,但前提是该控制台允许清空。在浏览器控制台上支持清空,但 Node 终端支持度不够,调用该方法将不会产生任何效果(也不会报错)。
![3b5dcef1137547d82bd2ca840de52cc4.webp](https://filescdn.proginn.com/0d7a2d709c27ef218bbf8e4687f89432/3b5dcef1137547d82bd2ca840de52cc4.webp)
5. time() + timeLog() + timeEnd()
这三个方法配合使用可以精确测量任务花费的时间。
-
time()
- 启动计时器。 -
timeLog()
- 时间记录 -
timeEnd()
- 停止计时器。
让我们使用这三个方法来比较几个常用循环所耗费的时间
![38c47edc34a73ad6a8f739616e14fcf0.webp](https://filescdn.proginn.com/443dacde7a125c211a621d37362bd1d8/38c47edc34a73ad6a8f739616e14fcf0.webp)
循环次数比较少时 for 循环性能是最差的,当循环次数变大时,性能优于另外两种循环。
![b9f8f100d65c1cb80b312b394d10a577.webp](https://filescdn.proginn.com/3a8bdce2c7c6e6feb61364ab373690d0/b9f8f100d65c1cb80b312b394d10a577.webp)
6. group() + groupCollapsed() + groupEnd()
这是将一堆控制台信息组合在一起的绝佳组合,通过缩进优化日志展示。
group()
- 添加1个分组。groupCollapsed()
- 类似于group()
,但分组开始时处于折叠状态。groupEnd()
- 结束当前分组
![225ffd726ec521309a8021f8544f06bd.webp](https://filescdn.proginn.com/1aa95339772df18732b53543ce03e78b/225ffd726ec521309a8021f8544f06bd.webp)
![861333004818dde2e571f14109d7b42d.webp](https://filescdn.proginn.com/3e37c461245e1b73dd34555155323ec5/861333004818dde2e571f14109d7b42d.webp)
在Node上只支持缩进 — 所以groupCollapsed()
在node里面没有用。
![8712802ba6b6be14454ac184cac0184a.webp](https://filescdn.proginn.com/b666f1c381f7707756f822d3b48ad442/8712802ba6b6be14454ac184cac0184a.webp)
7. dir()
dir()
可以在控制台中查看对象的所有属性和方法。
![ed04f5c7bb7b61107af37b3ae2ed87fc.webp](https://filescdn.proginn.com/2d6d3e44faa1a527a0f39d8b6f9a62c9/ed04f5c7bb7b61107af37b3ae2ed87fc.webp)
看起来有点像console.log()
,但console.dir()
专为这个特殊目的而设计的。
![4465f0ddace252834339ed09a10f2ba4.webp](https://filescdn.proginn.com/49ee78aed1103e50a8a3656d44723784/4465f0ddace252834339ed09a10f2ba4.webp)
我们再看下使用log()
与dir()
打印HTML元素对象时会发生什么:
![fa3e7767790d4d98b7240627360e0084.webp](https://filescdn.proginn.com/a937411b8b3c7e315dce5fb44f53dee4/fa3e7767790d4d98b7240627360e0084.webp)
log()
打印出HTML标签结构,但dir()
打印结果是对象上的每个属性。
翻译自:https://medium.com/coding-beauty/7-little-known-console-methods-in-javascript-6dfb63e665be
原作者:Coding Beauty
最后不要忘了点赞和在看呦!
祝 2024 年暴富!暴美!暴瘦!