关于前端:11-chrome高级调试技巧学会效率直接提升666

47次阅读

共计 2075 个字符,预计需要花费 6 分钟才能阅读完成。

兴许你我素未谋面,但很可能相见恨晚,我是 前端胖头鱼

前言

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?

最初

心愿能始终给大家分享实用、根底、进阶的知识点,一起早早上班,高兴摸鱼。

期待你在 掘金 关注我:前端胖头鱼 ,也能够在 公众号 里找到我:前端胖头鱼

正文完
 0