1. 首页

分享一些 Chrome 浏览器的前端调试技巧

前言

相信大部分前端同学都是用Chrome浏览器进行开发,这篇博客要分享的基本上是除了我们常用console.log之外的,Chrome开发者工具控制面板提供的调试方法~

首先在地址栏敲入:about:blank 创建一个空白页,再打开控制台~

开始操作演示~(多图预警!

关于console

关于console对象,其实提供了很丰富的API,可自查文档~

分享一些 Chrome 浏览器的前端调试技巧

关于Console控制面板

以下示例方法只存在于Chrome控制台Console面板~在JavaScripts中写是没有的哦!

Js中文网 – 前端进阶资源教程 www.javascriptC.com ,Babel中文文档
一个致力于帮助开发者用代码改变世界为使命的平台

$家族

$_

返回上一个被执行过的值~

分享一些 Chrome 浏览器的前端调试技巧

虽说很类似于命令行里的!!,但是$_并不会再执行一次表达式,如下图可证:

分享一些 Chrome 浏览器的前端调试技巧

如果之前的值没有保存在变量里,可以通过这个方法临时访问~(为什么说临时,因为当你执行完下一个表达式后,$_已经更新了哈)

分享一些 Chrome 浏览器的前端调试技巧

$0 – $4

$0、$1、$2、$3、$4五个指令相当于在Elements面板最近选择过的五个引用。 比如我在Elements面板上随意点击了掘金网站上的五个DOM节点。从时间线上,$4是我第一个点击的。而$0是我第五个,也即是最后一个点击的。利用此方法可以快速在Console面板调试你选中的节点!

分享一些 Chrome 浏览器的前端调试技巧

补充一下,还有点类似正则匹配~如下所示


function replacer(match, $1, $2, $3, $4, $5) { return [$1, $2, $3, $4, $5].join(' - '); } const str = 'abc12345#$*%[hello]{world}' .replace(/([^\d]*)(\d*)([^\w]*)(\[.*\])(\{.*\})/, replacer); console.log(str); // abc - 12345 - #$*% - [hello] - {world} // JS中文网 - 前端进阶资源教程 https://www.javascriptc.com

$

类似于document.querySelector()。不过比较少为人知的应该是它的第二个参数。指定从哪个节点开始选择。有时候想减少范围时,尤其管用!

分享一些 Chrome 浏览器的前端调试技巧

P.S. 函数签名$(selector, [startNode])

$$

类似于document.querySelectorAll(),可参考同上。

P.S. 函数签名$$(selector, [startNode])

$x

根据XPath表达式去查找节点。如下图示例:

分享一些 Chrome 浏览器的前端调试技巧

查找掘金站内所有含有href属性的a节点,然后遍历过滤含有http或https的节点~ 当然好像目前来说,大部分情况直接用$$$可以覆盖,说不定特殊情况下$x会很有用。有需要的同学可以了解学习一下~ XPath表达式规则可参考:www.w3schools.com/xml/xpath_s…

P.S. 函数签名$x(selector, [startNode])

API工具方法

以下方法同样只存在于Chrome控制台Console面板里,同学们请注意哦~

keys/values

见名知意。功能类似于Object.keysObject.values

分享一些 Chrome 浏览器的前端调试技巧

monitor/unmonitor

用来观察函数调用的工具方法。在函数调用的时候,可以同步输出函数名以及参数。

分享一些 Chrome 浏览器的前端调试技巧

当不再需要观察该函数时,调用unmonitor取消即可。

但是匿名函数不会生效,因为获取不到名字.

分享一些 Chrome 浏览器的前端调试技巧

monitorEvents/unmonitorEvents

可以观察对像的事件~

分享一些 Chrome 浏览器的前端调试技巧

也可以同时观察对象的多个事件~

分享一些 Chrome 浏览器的前端调试技巧

同样,使用unmonitorEvents取消观察。结合以上的$家族一起使用更便利哦

分享一些 Chrome 浏览器的前端调试技巧

P.S. 函数签名:monitorEvents(object[, events])

copy

快速拷贝一个对象为字符串表示方式到剪切板~

分享一些 Chrome 浏览器的前端调试技巧

getEventListeners

获取注册到一个对象上的所有事件监听器~

分享一些 Chrome 浏览器的前端调试技巧

其实还有内置的inspect、debug/undebug等方法,大家可以自行搜索,都很有用~这里就不一一介绍了~

关于断点调试

断点调试十分重要,以往我们可能直接在代码里添加debugger,然后刷新浏览器调试。实际上除了这种方法外还有很多种断点。

DOM breakpoint

在Elements面板,右键点击节点唤出菜单,添加对应的DOM断点,可以监测指定节点的子树修改、属性修改、以及节点的移除。

分享一些 Chrome 浏览器的前端调试技巧

Source breakpoint

有时候无需在源码中添加debugger。直接在Source面板添加断点即可调试。见下图行号上的小蓝色箭头!

分享一些 Chrome 浏览器的前端调试技巧

Js中文网 – 前端进阶资源教程 www.javascriptC.com ,Babel中文文档
一个致力于帮助开发者用代码改变世界为使命的平台

Conditional breakpoint

条件断点。只有符合条件时,才会触发断点。见下图行号上的小橙色箭头!

分享一些 Chrome 浏览器的前端调试技巧

分享一些 Chrome 浏览器的前端调试技巧

分享一些 Chrome 浏览器的前端调试技巧

除此之外,还有blackbox、XHR(fetch) breakpoint等各种Chrome提供的工具,建议同学们多去了解一下,说不定关键时候可以发挥很大的作用~

小技巧

如果找不到对应的指令,可以在控制台使用快捷键Ctrl + Shift + P。MacOS的话就是Command + Shift + P(这个和编辑器是一样的道理)。快速搜索你想要的控制面板工具~

分享一些 Chrome 浏览器的前端调试技巧

小结

其实长久以来,我也一直只会用console.log和简单的debugger来调试Web应用,有时候遇到复杂的问题时,匮乏的调试方法种类难以快速定位问题,从而降低工作效率。因此针对此类情况,学习如何更好的调试相信是会对工作有极大的帮助!

最后,欢迎同学们补充或指正这些调试工具方法~

当然,对大家如有帮助,不甚荣幸~

作者:苏里
链接:https://juejin.im/post/5d09c39ee51d4576bc1a0e07

看完两件小事

如果你觉得这篇文章对你挺有启发,我想请你帮我两个小忙:

  1. 关注我们的 GitHub 博客,让我们成为长期关系
  2. 把这篇文章分享给你的朋友 / 交流群,让更多的人看到,一起进步,一起成长!
  3. 关注公众号 「画漫画的程序员」,公众号后台回复「资源」 免费领取我精心整理的前端进阶资源教程

JS中文网是中国领先的新一代开发者社区和专业的技术媒体,一个帮助开发者成长的社区,目前已经覆盖和服务了超过 300 万开发者,你每天都可以在这里找到技术世界的头条内容。欢迎热爱技术的你一起加入交流与学习,JS中文网的使命是帮助开发者用代码改变世界

本文著作权归作者所有,如若转载,请注明出处

转载请注明:文章转载自「 Js中文网 · 前端进阶资源教程 」https://www.javascriptc.com

标题:分享一些 Chrome 浏览器的前端调试技巧

链接:https://www.javascriptc.com/2633.html

« 十个Chrome插件,你至少有一半没见过
使用Chrome开发者工具调试Android端内网页(微信,QQ,UC,App内嵌页等)»
Flutter 中文教程资源

相关推荐

QR code