通过console.table()做高级JavaScript调试

开发 开发工具
昨天,我发现了一个很棒的JavaScript调试小工具,它是Chrome开发者工具之一。

昨天,我发现了一个很棒的JavaScript调试小工具,它是Chrome开发者工具之一。在小型Web开发会议中,Marcus Ross发表了关于在Chrome中实现各种JavaScript调试工具的谈话,其中之一就是我想在此展示的console.table()函数。

通过console.log()记录数组数据

想象一下你已经创建了一个编程语言及其文件扩展名的表:

  1. var languages = [ 
  2.     { name: "JavaScript", fileExtension: ".js" }, 
  3.     { name: "TypeScript", fileExtension: ".ts" }, 
  4.     { name: "CoffeeScript", fileExtension: ".coffee" } 
  5. ]; 
  6.   
  7. console.log(languages) 

调用console.log(languages)函数将会使你的数据得到如下显示:

logging_scsvcwith_console_log

显示树状结构图的目的是为了对调试有所帮助,但是我觉得有点麻烦,因为需要手动打开每个折叠的对象。我的意思是,我们可以通过console.table()函数做的更好一点。

通过console.table()记录数组数据

我们通过调用console.table()来代替console.log()函数的使用:

  1. console.table(languages); 

要确保控制台在刷新页面之前打开,否则你可能会看不到任何输出。如果你的一切操作都正确的话,作为回报,你将看到这个漂亮的小表格视图:

1

很漂亮是吧?更棒的事情是——可以按照表的每一列来排序:

1

当然,此表对于表格格式的数据支持的***。如果所有对象都有着完全不同的数据结构,你的表中将有大多数单元格含有未定义的值。尽管如此,属性值的整齐排列也会给你一个很棒的总览效果。

通过console.table()记录对象数据

关于console.table()的另一个好处是它同样适用于对象数据:

  1. var languages = { 
  2.     csharp: { name: "C#", paradigm: "object-oriented" }, 
  3.     fsharp: { name: "F#", paradigm: "functional" } 
  4. }; 
  5.   
  6. console.table(languages); 

1

这份礼物如上图所示。

过滤显示对象的属性

  1. // Multiple property keys 
  2. console.table(languages, ["name""paradigm"]); 

如果你想通过某些属性限制表中的列时,你可以通过传递一个键值数组作为console.table()调用的第二个参数:

  1. // Multiple property keys 
  2. console.table(languages, ["name", "paradigm"]); 

对于单个属性,一个简单的字符串参数就足够了:

  1. // A single property key 
  2. console.table(languages, "name"); 

总结

我以为我知道大多数Chrome开发者工具自带的功能,但是显然我错了。开发者工具中有很多很多有用的功能,只是在等你去使用它。说真的,去看看官方文档的页面,没准你会发现一些你不知道的很棒的功能。

原文链接:http://blog.mariusschulz.com/2013/11/13/advanced-javascript-debugging-with-consoletable

译文链接:http://blog.jobbole.com/60787/

责任编辑:陈四芳 来源: 伯乐在线
相关推荐

2018-01-26 10:42:44

前端JavascriptConsole对象

2021-03-17 08:53:21

JavaScript开发代码

2019-04-04 14:05:20

consolejs前端

2021-08-26 05:04:53

JavaScript调试技巧

2023-02-24 08:00:00

2014-07-11 09:24:56

终端调试AngularJS

2009-07-14 11:34:42

MyEclipse断点JavaScript

2022-07-06 15:51:48

浏览器开发者工具

2019-06-14 14:15:07

Javascript调试技巧代码

2017-10-09 10:04:48

JavaScriptChrome DevT调试

2023-09-06 07:22:48

控制台UI工具

2024-04-08 11:42:14

代码console开发

2020-03-29 20:16:09

JavaScript前端技术

2021-09-07 07:53:43

Console函数DOM

2024-09-10 08:35:57

2023-08-31 09:10:18

JavaScript调试

2017-09-12 15:11:12

Chrome

2018-03-12 10:15:10

前端Javascript反调试

2024-10-29 12:54:27

2018-03-15 09:20:00

前端JSconsole
点赞
收藏

51CTO技术栈公众号