10 个技巧,让你更专业地使用 console 进行 JS 调试

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:


fdc9ede8f31a0db5c0ba0fa740ea2decc3fd9827


首先,我必须承认这一点,我将利用这个平台从我的开发环境中清理出骨架(轮廓)。有时候,我所做的“魔法”(有些人称之为“编码”),并不像我的同事在为他们展示这些宏伟结果时候看到的那样完美。 是的,我说过:有时候,我会使用老式的试错法,我们都称之为”调试” : )

在过去的十年中,我热衷的事情之一是前端开发(特别是 JavaScript)。作为一名“工匠”,我喜欢学习市面上的新工具。在这个故事中,我将给你们一些很棒的、更专业的技巧,去使用好用又“古老”的 console。

是的,我们都知道它的基础用法:

console.log(‘Hello World!’); // log a message or an object to console

console.info(‘Something happened…’); // same as console log

console.warn(‘Something strange happened…’); // same as console log but outputs a warning

console.error(‘Something horrible happened…’); // same as console log but outputs an error

所以,我希望现在我可以给你们一些以前不知道的技巧,以及那些可以让你们成为一个更专业的调试人员的玩法。

Tip #1 console.trace()

如果您想获取日志信息的提示位置,可通过使用console.trace()来获取带有记录数据的堆栈跟踪。


6bc0837deb0600062df32b7a447a82babb40a0e3

Tip #2 console.time() && console.timeEnd()

如果您试图找到一个比较隐匿的性能问题,请使用console.time()开始计算时间,然后使用console.timeEnd()进行打印。

b3c58cd94a71c071918b14e2112857355325a9da

Tip #3 console.memory

如果你的性能问题更加棘手,并且你正在寻找一个隐匿的内存泄漏,你可能想尝试并利用console.memory(是属性,不是函数)来检查你的堆大小状态。

0d9f3191c6a67ca3eb85c757e042b95e8d75b7e7

Tip #4 console.profile(‘profileName’) & console.profileEnd(‘profileName’)

这不是标准的方法,但得到了广泛的支持。你可以使用console.profile('profileName'),然后使用console.profileEnd('profileName'),从代码中启动和结束浏览器性能工具 - “performance profile”。 这将帮助您精确地分析您想要的内容,并避免了您单击鼠标,它取决于程序执行时间。

Tip #5 console.count(“STUFF I COUNT”)

在函数或代码反复出现的情况下,您可以使用console.count('?')来计算您的代码被读取的次数。

1624133112a1bc9596786a445bdb9cafc5e068f0

Tip #6 console.assert(false, “Log me!”)

是的,条件日志记录并没有用if-else包装你的日志 : )

您可以使用console.assert(condition, msg)在condition为假时记录某些内容。

免责声明:在 Node.js中,这将抛出 Assertion Error!

4b6b0c4a940434ce09ad150f367384a6e07aea3b

Tip #7 console.group(‘group’) & console.groupEnd(‘group’)

写了这么多的日志之后,你可能想对它们进行组织。一个小而有用的工具是console.group()和console.groupEnd()。使用控制台组,将控制台日志组织在一起,每个分组在层次结构中创建另一个级别。 调用groupEnd()减少一个级别(回到上一个层级)。

d540b031d3d39a02aa72382fd5bb0663d1a41f5c

Tip #8 String substitutions

记录日志时,可以使用字符串替换合并变量。这些引用是(%s = string,%i = integer,%o = object,%f = float)。

7c88c63cf8a24366f5ebddbc39182c6887458b90


Tip #9 console.clear()

那么,写了这么多的日志,现在是时候清理一下你的控制台了。

d40f979b02265a7bcd91b4166677b76c8b719dc5

Tip #10 console.table()

在我看来,这是一个真正的“瑰宝”! 你可以使用console.table()打印一个非常漂亮的表格!

c31185151ace7d97042c7489bcd3637d3576cfa0

我真的希望这些技巧能让大家的调试更有效率,甚至更有乐趣!

原文发布时间:2018年03月10日

作者:Yotam Kadishay

本文来源:github  如需转载请联系原作者

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
3月前
|
JavaScript 前端开发 开发者
Chrom devtools JS调试、性能优化与必备功能
Chrom devtools JS调试、性能优化与必备功能
|
2月前
|
Web App开发 JavaScript 前端开发
JavaScript 调试
JavaScript 调试
16 0
|
3月前
|
存储 JSON 监控
JavaScript 逆向基础篇:浏览器调试与 Hook 技术
JavaScript 逆向基础篇:浏览器调试与 Hook 技术
249 1
|
2月前
|
Web App开发 JavaScript 前端开发
JavaScript基础知识-使用Firefox进行代码的调试(Debug)
关于如何使用Firefox浏览器进行JavaScript代码调试的基础知识介绍。
80 0
|
3月前
|
JavaScript 开发者 UED
Vue.js 错误处理与调试:跟上技术潮流,摆脱开发困扰,成为代码大神不是梦!
【8月更文挑战第30天】在 Vue.js 开发中,错误处理与调试至关重要。本文将对比 Vue 的全局错误捕获机制 `Vue.config.errorHandler` 和组件内 `watch` 监听数据变化的方式,并介绍 Vue 开发者工具、控制台打印 (`console.log`) 以及代码断点 (`debugger`) 等调试方法。此外,还将探讨如何通过自定义错误页面提升用户体验。通过这些技巧的对比,帮助开发者灵活选择适合的策略,确保应用稳定性和开发效率。
51 0
|
3月前
|
JavaScript 前端开发 C++
【Azure Function】调试 VS Code Javascript Function本地不能运行,报错 Value cannot be null. (Parameter 'provider')问题
【Azure Function】调试 VS Code Javascript Function本地不能运行,报错 Value cannot be null. (Parameter 'provider')问题
|
3月前
|
Web App开发 JavaScript 前端开发
IDEA——使用JavaScript Debugger调试代码
IDEA——使用JavaScript Debugger调试代码
30 0
|
4月前
|
JavaScript
js 调试 —— 断点(含进入函数、条件断点等)
js 调试 —— 断点(含进入函数、条件断点等)
200 0
|
4月前
|
Web App开发 JavaScript 前端开发
js 调试—— 【控制台】debugger语句 、 命令行API
js 调试—— 【控制台】debugger语句 、 命令行API
252 0
|
4月前
|
JavaScript 前端开发 测试技术
js 控制台调试——console 对象【详解】
js 控制台调试——console 对象【详解】
43 0