chrome浏览器作为前端童鞋的老婆,相信你一定不陌生。调页面、写bug、画样式、看php片少了它整个世界都不香了。
不信?一起来看看我们的老婆有多厉害....
1#. 一键重新发起请求在与后端接口联调或排查线上bug时,你是不是也经常听到他们说这句话:你再发起一次请求试试,我这边看下为啥出错了!
重发请求,这有一种简单到发指的方式。
选中network
点击fetch/xhr
选择要重新发送的请求
右键选择replay xhr
不用刷新页面,不用走页面交互,是不是非常爽!!!
2#. 在控制台快速发起请求还是联调或修bug的场景,针对同样的请求,有时候需要修改入参重新发起,有啥快捷方式?
选中network
点击fetch/xhr
选择copy as fetch
控制台粘贴代码
修改参数,回车搞定
曾经我总是通过改代码或者手写fetch的方式处理,想想真是太傻了...
3#. 复制javascript变量假如你的代码经过计算会输出一个复杂的对象,且需要被复制下来发送给其他人,怎么办?
使用copy函数,将对象作为入参执行即可
以前我总是通过json.stringify(fetfishobj, null, 2)打印到控制台,再手动复制粘贴,这效率实在是太低了...
4#. 控制台获取elements面板选中的元素调试网页时通过elements面板选中元素后,如果想通过js知道它的一些属性,如宽、高、位置等怎么办呢?
通过elements选择要调试的元素
控制台直接用$0访问
5#. 截取一张全屏的网页偶尔咱们也会有对网页截屏的需求,一屏还好,系统自带的截屏或者微信截图等都可以办到,但是要求将超出一屏的内容也截下来咋办呢?
准备好需要截屏的内容
cmd + shift + p 执行command命令
输入capture full size screenshot 按下回车
如果要截取选中的部分元素呢?
答案也很简单,第三步输入capture node screenshot即可
6#. 一键展开所有dom元素调试元素时,在层级比较深的情况下,你是不是也经常一个个展开去调试?有一种更加快捷的方式
按住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的白色主题,有的喜欢黑色,我们可以使用快捷键迅速切换两个主题。
cmd + shift + p 执行command命令
输入switch to dark theme或者switch to light theme进行主题切换
9.# "$"和"$$"选择器在控制台使用document.queryselector和document.queryselectorall选择当前页面的元素是最常见的需求了,不过着实有点太长了,咱们可以使用$和$$替代。
10.# $i直接在控制台安装npm包你遇到过这个场景吗?有时候想使用比如dayjs或者lodash的某个api,但是又不想去官网查,如果可以在控制台直接试出来就好了。
console importer 就是这么一个插件,用来在控制台直接安装npm包。
安装console importer插件
$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?
(学习视频分享:web前端开发、编程基础视频)
以上就是11个可以提升效率的chrome调试技巧的详细内容。
