不要在JavaScript中使用 Console.log,试试这个
创始人
2025-06-30 07:30:23
0

调试,程序员极力避免的事情,因为这样只会在代码中产生更多的错误。

即使是最优秀的程序员,也会发现自己没有办法写,没有错误的代码。这就是为什么你应该总是需要调试代码。

调试JavaScript代码最佳方法之一是console.log()。除此之外还有更好的办法。

这就是本文的重点讲述与控制台交互的方法。在复杂的ide中输入consol可以提供自动完成提示功能。

除了console.log(),这里还有其他更好的选择。使用这些选项可以让调试过程变得更加容易和更快。

console.warn()和console.error()

当存在可以停止应用程序工作的错误时,使用console.log来调试它是行不通的。

这会是你的控制台消息变得异常混乱,让你找不到你想要找的消息。

使用console.warn() 和 console.error() 是克服这个问题的好方法。

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

console.error("This is an error")

时间operations

想看看这段代码运行需要多长时间?

使用console.time()

首先,创建一个计时器并为其指定一个唯一的名称。

console.time("Loop timer")


然后,运行该代码段。

for(i = 0; i < 10000; i++){
    // Some code here
}

然后调用 timeEnd().

console.timeEnd("Loop timer")

这是所有的代码。

console.time("Loop timer")
for(i = 0; i < 10000; i++){
    // Some code here
}
console.timeEnd("Loop timer")


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

最终代码的运行

想看看函数是如何被调用的吗?

function trace(){
    console.trace()
}
function randomFunction(){
    trace();
}

在这里,有一个名为randomFunction 调用trace,它又调用console.trace()。

所以当你调用randomFunction, 你会得到类似如下的输出。

上图显示的那个匿名的方法调用了 randomFunction, 然后调用 trace().

控制台消息分组

对控制台消息进行分组,可以使控制台更易于阅读。

console.log("Test1!");

console.group("My message group");

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

console.groupEnd()

所有的 Test2 归于 ‘My message group’组之下.

清除控制台消息

如果你遵循本教程,那么你的控制台将会非常满。让我们把它清除掉。

console.clear();

下面就是结果。

没有什么特别的,我只是又清除了一遍,让我们继续。

表格

让我们添加表格,以更好的可视化数据,想象一下我们有两个对象。

var person1 = {name: "Weirdo", age : "-23", hobby: "singing"}
var person2 = {name: "SomeName", age : "Infinity", hobby: "programming"}

简单的使用console.log 只会让数据看起来很混乱。

使用表格就会更好一点。

console.table({person1, person2})


从未见过JavaScript控制台可以如此的干净,对吧?

在控制台中使用CSS ?

是的,你没看错,你可以将css添加到控制台。

console.log("%c I love JavaScript!", 
  "color: red; background-color: lightblue; border: solid");

注意这个%c 标识. 这就是发挥魔法的地方。.

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...