【最佳实践】你肯定不知道的chrome调试技巧:写代码的时候永远如鱼得水、效率提升999%

目录

前言

1.接口一键重新发起请求

2. 在控制台快速发起请求(支持修改参数)

3. 在控制台快速复制JavaScript复杂对象

4. 控制台获取Elements面板选中的元素以及元素的属性

​编辑

5. 如何截取一张全屏的网页(滚动截图)

6. 调试一键展开所有DOM元素

7. 控制台引用上一次执行的结果(提高效率)

8. 根据network接口信息,寻找调用堆栈信息。

9. "$"和"$$"选择器,获取dom元素的简写用法

10. $i直接在控制台安装npm包,快速调试第三方api

11. debug调试-Add conditional breakpoint条件断点的妙用

12.网络请求切换网络模式

结语


前言

chrome浏览器作为前端同学的另一伴,相信你肯定不陌生。调试页面写BUG画样式、无痕模式一起看php,少了它感觉整个宇宙都不香了。

接下来,咱们一起看看她(chrome)的另一面........

1.接口一键重新发起请求

在与后端开发接口联调或排查线上BUG时,你是不是也经常听到他们说这句话:你再发起一次请求试试,我这边看下为啥出错了!

重发请求,这有一种简单到发指的方式。

  1. 选中Network
  2. 点击Fetch/XHR
  3. 选择要重新发送的请求
  4. 右键选择Replay XHR

不用刷新页面,不用重新操作页面交互,是不是非常happy!!!

2. 在控制台快速发起请求(支持修改参数)

还是联调或修BUG的场景,针对同样的请求,有时候需要修改入参重新发起,有啥快捷方式?

  1. 选中Network
  2. 点击Fetch/XHR
  3. 选择Copy as fetch
  4. 控制台粘贴代码
  5. 修改参数,回车搞定

曾经我总是通过改代码或者手写fetch的方式处理,想想真是太傻了...

3. 在控制台快速复制JavaScript复杂对象

假如你的代码经过计算会输出一个复杂的对象,且需要被复制下来发送给其他人(后端开发人员),怎么办?

  1. 使用copy函数,将对象作为入参执行即可

以前我总是通过JSON.stringify(fetfishObj, null, 2)打印到控制台,再手动复制粘贴,这效率实在是太低了...

4. 控制台获取Elements面板选中的元素以及元素的属性

调试网页时通过Elements面板选中元素后,如果想通过JS知道它的一些属性,如位置等怎么办呢?

  1. 通过Elements选择要调试的元素
  2. 控制台直接用$0访问

5. 如何截取一张全屏的网页(滚动截图)

偶尔咱们也会有对网页截屏的需求,一屏还好,系统自带的截屏(command+shift+4)或者微信截图等都可以办到,但是要求将超出一屏的内容也截下来咋办呢

  1. 在调试模式,准备好需要截屏的内容。
  2. 选中element节点
  3. 鼠标选中需要截屏的元素:全屏滚动选中 html根标签
  4. 点击菜单“截取节点屏幕截图”或者“Capture node screenshot

如果要截取选中的部分元素呢?

答案也很简单:选中需要截图的dom节点,右击选中菜单“截取节点屏幕截图”或者“Capture node screenshot”。

6. 调试一键展开所有DOM元素

调试元素时,在层级比较深的情况下,你是不是也经常一个个展开去调试?有一种更加快捷的方式

  1. 按住option键 + click点击需要展开的元素。(需要展开的最外层元素)

7. 控制台引用上一次执行的结果(提高效率)

来看看这个coding测试场景,我猜你也一定遇到过, 对某个字符串进行了各种工序,然后我们想知道每一步执行的结果,该咋办?。

'abcdef'.split('').reverse().join('')你可能会这样做
 

我们可以使用$_来获取上一次的执行结果。

8. 根据network接口信息,寻找调用堆栈信息。

同学们在codding调试bug的时候,还在source里面寻找报错的js文件吗?如果对代码工程接口不熟悉,会更加感觉很吃力!

我们可以在选中接口信息后,可以看到 “启动器”节点。在这里可以看到堆栈调用信息,可以快速定位代码位置。是不是很惊艳?

9. "$"和"$$"选择器,获取dom元素的简写用法

在控制台使用document.querySelectordocument.querySelectorAll选择当前页面的元素是最常见的需求了,不过着实有点太长了,咱们可以使用$$$替代。

10. $i直接在控制台安装npm包,快速调试第三方api

你遇到过这个场景吗?有时候想使用比如想测试一下dayjs或者lodash的某个API是否符合我们的需求,但是又不想去官网查,在Console中也不能直接使用。我们可以采用下面的方法来解决:

Console Importer 可以用来在控制台直接安装npm包。

  1. 安装Console Importer插件
  2. $i('name')安装npm包

这里用moment插件为例:

11. debug调试-Add conditional breakpoint条件断点的妙用

假设有下面这段代码,咱们希望食物名字是🍫时才触发断点,可以怎么弄?

 

这在大量数据下,只想对符合条件时打断点条件将会非常方便。试想如果没有条件断点咱们是不是要点n次debugger?

12.网络请求切换网络模式

  1. 切换 Network 网络面板
  2. 点击 “ online ” 下拉面板
  3. 选择要切换的网络模式

结语

🔥如果此文对你有帮助的话,欢迎💗关注、👍点赞、⭐收藏、✍️评论,支持一下博主~ 

  • 46
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寻找DX3906

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值