11+ chrome高级调试技巧,学会效率直接提升666%

SegmentFault

共 2945字,需浏览 6分钟

 ·

2022-04-19 10:39

作者:前端胖头鱼

简介:会一点点前端,曾在阿里当小二,美团烧开水,现在热衷可视化领域。

来源:SegmentFault  思否社区 


前言



chrome浏览器作为前端童鞋的老婆,相信你一定不陌生。调页面、写BUG、画样式、看php片少了它整个世界都不香了。


不信?一起来看看我们的老婆有多厉害....

1#. 一键重新发起请求



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


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

  1. 选中Network

  2. 点击Fetch/XHR

  3. 选择要重新发送的请求

  4. 右键选择Replay XHR



不用刷新页面,不用走页面交互,是不是非常爽!!!

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#. 截取一张全屏的网页



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

  1. 准备好需要截屏的内容

  2. cmd + shift + p 执行Command命令

  3. 输入Capture full size screenshot 按下回车



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

答案也很简单,第三步输入Capture node screenshot即可


6#. 一键展开所有DOM元素



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

  1. 按住opt键 + click(需要展开的最外层元素)



7#. 控制台引用上一次执行的结果



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

'fatfish'.split('').reverse().join('') // hsiftaf

你可能会这样做

// 第1步
'fatfish'.split('') // ['f''a''t''f''i''s''h']
// 第2步
['f''a''t''f''i''s''h'].reverse() // ['h''s''i''f''t''a''f']
// 第3步
['h''s''i''f''t''a''f'].join('') // hsiftaf


更简单的方式

使用$_引用上一次操作的结果,不用每次都复制一遍

// 第1步
'fatfish'.split('') // ['f''a''t''f''i''s''h']
// 第2步
$_.reverse() // ['h''s''i''f''t''a''f']
// 第3步
$_.join('') // hsiftaf


8#. 快速切换主题



有的同学喜欢chrome的白色主题,有的喜欢黑色,我们可以使用快捷键迅速切换两个主题。

  1. cmd + shift + p 执行Command命令

  2. 输入Switch to dark theme或者Switch to light theme进行主题切换



9.# "$"和"$$"选择器



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


10#. $i直接在控制台安装npm包



你遇到过这个场景吗?有时候想使用比如dayjs或者lodash的某个API,但是又不想去官网查,如果可以在控制台直接试出来就好了。

Console Importer 就是这么一个插件,用来在控制台直接安装npm包。

  1. 安装Console Importer插件

  2. $i('name')安装npm包



11#. Add conditional breakpoint条件断点的妙用



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

const foods = [
  {
    name: '🍔',
    price: 10
  },
  {
    name: '🍫',
    price: 15
  },
  {
    name: '🍵',
    price: 20
  },
]

foods.forEach((v) => {
  console.log(v.name, v.price)
})

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


最后



希望能一直给大家分享实用、基础、进阶的知识点,一起早早下班,快乐摸鱼。



点击左下角阅读原文,到 SegmentFault 思否社区 和文章作者展开更多互动和交流,扫描下方”二维码“或在“公众号后台回复“ 入群 ”即可加入我们的技术交流群,收获更多的技术文章~

- END -


浏览 17
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报