前端必须知道的开发调试知识之Chrome DevToos

前言

前端Debug的特点」

前端 Debug 具有多平台、多环境、多工具、多技巧的特点:

前端必须知道的开发调试知识之Chrome DevToos
前端Debug的特点

前端开发的平台不只是浏览器,还包括 HybirdNodeJs、小程序、桌面应用等平台;

前端开发环境有本地开发环境和线上环境;

前端调试工具也多种多样:如 Chrome devToolsvConsole 等;

前端的 Debug 技巧也有许多:如使用 console 语句,输出错误信息,结果等来 Debug;或者利用 BreakPoint 断点来调试代码。

由以上可知:前端 Debug 不知那么简单,我们需要掌握更多的 Debug工具及技巧,帮助我们改善代码。

Chrome DevTools PC端调试工具

下面我们来介绍 Chrome DevTools 工具:

  1. 首先我们打开 Chrome DevTools 工具:启动 Chrome 浏览器 -> 右键点击弹出菜单的「检查」选项:
前端必须知道的开发调试知识之Chrome DevToos
Chrome DevTools 工具

这就是我们 Chrome DevTools 工具了,你可能看到的界面的语言为英语:我们可以通过点击右上角的设置图标,选择偏好设置,找到 languglge 选项更改为中文,重启浏览器即可。

下面我们来依次介绍导航栏选项所对应的功能,即元素(Elements)、控制台、源代码、网络、Performance insights、性能、内存、应用、安全、Lighthouse、图层、CSS概览。

元素(Elements)栏

元素(Elements):

元素(Elements)栏,代表一个网页里边的元素和样式

可以动态修改元素和样式

通过以下示例了解其作用:首先准备一个HTML 文件,通过浏览器打开,右击进入检查,选择元素栏。

<!DOCTYPE html>
<html lang="en">

<head>
   <meta charset="UTF-8">
   <meta http-equiv="X-UA-Compatible" content="IE=edge">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <title>示例</title>
   <style>
       .box{
           width: 50px;
           height: 50px;
      }
       .small{
           width: 100px;
           height: 100px;
      }
       .big{
           width: 200px;
           height: 200px;
      }
       .green{
           background-color: green;
      }
       .red{
           background-color: red;
      }
       .radius{
           border-radius: 10px;
      }
   </style>
</head>

<body>
  <div>
   <div class="box small red"></div>
   <div class="box big green"></div>
  </div>
</body>

</html>
前端必须知道的开发调试知识之Chrome DevToos

「操作」

  1. 我们可以选中对应的元素,查看其样式和盒子模型
前端必须知道的开发调试知识之Chrome DevToos
  1. 点击元素可以修改元素的属性(class style 等)甚至替换元素:
前端必须知道的开发调试知识之Chrome DevToos

或者通过右侧样式栏的 .cls,为选中的元素,添加新类,或者移除已有类

前端必须知道的开发调试知识之Chrome DevToos
  1. 选中对应的元素,通过右侧的样式栏,可以勾选/取消类名来动态的查看类名生效效果:前端必须知道的开发调试知识之Chrome DevToos

  2. 选中对应的元素,通过右侧的样式栏,点击元素的具体样式值(字号、颜色、宽度、高度等)可以进行编辑,浏览器可实时预览:

如点击背景颜色值,调出调色器,改变背景色前端必须知道的开发调试知识之Chrome DevToos

如点击宽度值,改变元素的宽度

前端必须知道的开发调试知识之Chrome DevToos
点击宽度值,改变元素的宽度
  1. 选中元素后,点击右侧栏计算样式(Computed)下点击样式里的箭头可以调转到 styles 面板中的 css 规则。(当元素样式较多时,可以点击搜索对应的css样式)
前端必须知道的开发调试知识之Chrome DevToos
  1. 如何调试伪类:

当我们 调试元素的 :hover 伪类时,由于鼠标离去和进入,伪类样式就会取消和生效,使我们无法调试伪类的样式,那么我们可以通过以下方式,强制伪类生效,进行调试。

选中具有伪类的元素,右击点击菜单中的强制执行状态->选中对应的伪类即可:

前端必须知道的开发调试知识之Chrome DevToos

或者通过右侧样式栏的 :hov ,来强制设置伪类生效:

前端必须知道的开发调试知识之Chrome DevToos
image-20220804224310103.png

控制台(Console)栏

控制台(Console):

控制台(Console)栏,可以用来代码中的日志,或执行js代码

前端必须知道的开发调试知识之Chrome DevToos

「日志级别」

输入以下代码,在控制台执行:

console.log('Hi'); //普通日志
console.warn('Hi'); //警告
console.error('Hi'); //错误
console.debug('Hi'); //debug
console.info('Hi'); //info

前端必须知道的开发调试知识之Chrome DevToos给日志添加样式,突出重要的信息:

console.log('%s %o,%c%s','hello',{name:'tom',age:18},'font-size:24px; color: red', 'Hi My Friend')
前端必须知道的开发调试知识之Chrome DevToos
效果图

占位符解释:

  • %s:字符串占位符
  • %o:对象占位符
  • %c:样式占位符
  • %d:数字占位符

「不同类型的数据输出的颜色不同」

console.log(111);
console.log('324');
前端必须知道的开发调试知识之Chrome DevToos

「其他的日志」

console.table(); // 可以以表格形式展示数据

示例:

const goods = [
  {name: 'apple', count: 300, price: 10.00},
  {name: 'orange', count: 500, price: 20.00}
];
console.log(goods);
console.table(goods);
前端必须知道的开发调试知识之Chrome DevToos
效果图

这样可以很方便看见数据的结构

console.dir();  //以文件树的形式,显示对象

示例:如我们打印 document.body

console.log(document.body);
console.dir(document.body);
前端必须知道的开发调试知识之Chrome DevToos
效果图

使用 console.log()方式,相当于拿到了整体的元素,使用console.dir(),使我们可以获取属性。

源代码(Sources))栏

源代码(Sources):

源代码(Sources))栏,可以用来展示项目的源代码,对代码进行断点调试

前端必须知道的开发调试知识之Chrome DevToos「各栏介绍」

前端必须知道的开发调试知识之Chrome DevToos

区域1:页面资源文件目录树:相当于我们的项目目录

区域2:代码的预览区域

区域3: Debug工具栏,从左到右依次为

  • 暂停(继续)
  • 单步跳过
  • 进入函数
  • 跳出函数
  • 单步执行
  • 激活(关闭)所有断点
  • 代码执行异常处启动

区域4:断点调试器

「如何开始断点调试」

准备代码

<!DOCTYPE html>
<html lang="en">

<head>
   <meta charset="UTF-8">
   <meta http-equiv="X-UA-Compatible" content="IE=edge">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <title>示例</title>
   <style>
       .box{
           width: 50px;
           height: 50px;
      }
       .small{
           width: 100px;
           height: 100px;
      }
       .big{
           width: 200px;
           height: 200px;
      }
       .green{
           background-color: green;
      }
       .red{
           background-color: red;
      }
       .radius{
           border-radius: 10px;
      }
   </style>
</head>

<body>
  <div>
   <div class="box small red" ></div>
   <div class="box big green"></div>
  </div>
  <script>
   //立即执行函数
  (()=>{
       debugger
       console.log(1);
       console.log(2);
       console.log(4);
       console.log(5);
       console.log(6);
       console.log(7);
  })()
  </script>
</body>

</html>

如何进入:

  1. 在想要暂停代码的地方,加上关键字 debugger 设置断点
  2. 或在预览区域的行号前进行点击,出现红点,即设置了断点
前端必须知道的开发调试知识之Chrome DevToos
image-20220804232731904.png

「Debug工具栏详解」

前端必须知道的开发调试知识之Chrome DevToos

第一个暂停(开始)按钮:可以让我们在遇到bug时,暂停或继续执行代码

区域3: Debug工具栏,从左到右依次为

  1. 暂停(继续) 可以让我们在遇到bug时,暂停或继续执行代码
  2. 单步跳过 可以让我们一步步的执行
  3. 进入当前函数 当我们在一个函数里边执行代码时,如果代码步骤长,我们可以使用该按钮跳过该函数,进入上一层
  4. 跳出当前函数 当执行一个函数时,我们可以执行该函数,不必进入该函数内部(下层),从而执行(同层)代码
  5. 单步执行
  6. 激活(关闭)所有断点
  7. 代码执行异常处启动

「断点调试器详解」

前端必须知道的开发调试知识之Chrome DevToos
  1. 监视(Watch):当我们执行代码的时候,可以显示当前执行代码处,变量的值

  2. 断点(Breakpoints):显示当前文件的所有断点

  3. 作用域和调用堆栈

  4. XHR/提取断点:所有请求的断点

  5. DOM 断点:当HTML中某一个元素发生变化时,可以添加断点

压缩后的代码如何调试?

前端代码天生具有”开源“属性,出于安全考虑,上线之前JavaScript代码通常会被压缩(如webpack构建打包后),压缩后的代码只有一行,变量使用’a’,‘b’等替换,整体变得不可阅读。

前端必须知道的开发调试知识之Chrome DevToos
压缩后的代码

我们可以通过 soursemap 来进行调试:当项目上线后,某行代码报错,定位到错误位置,通过 soursemap 映射源码,进行处理。

问题:既然 soursemap可以映射源码,那压缩后的代码不就不安全了,那么我们应该如何防范?

  • 可以在项目打包时,打包出 soursemap 文件,将其上传到另一个服务器,不与主项目在一起,这样其他人就看不见源码了;我们可以通过一些监控系统来排错,由监控系统,结合 soursemap 来比对源码中的错误。
前端必须知道的开发调试知识之Chrome DevToos

网络(Network)栏

网络(Network):

网络(Network)栏 我们可以看见该网站的所有请求,并查看接口的详细信息

以掘金为例:

前端必须知道的开发调试知识之Chrome DevToos区域1:控制面板

区域2:过滤面板

区域3:概览面板

区域4:请求列表面板

区域5:总结面板

区域6:请求详情面板

「控制面板常用功能」

前端必须知道的开发调试知识之Chrome DevToos
image-20220805004400572.png
  1. 红点:停止录制网络活动:就是有请求过来不在搜集
  2. 第二个清除按钮:可请求列表内容
  3. 已停用节流模式选项卡:可选用不同的网络,对应用进行测试

前端必须知道的开发调试知识之Chrome DevToos「过滤面板」前端必须知道的开发调试知识之Chrome DevToos

可以对请求过滤,显示指定的请求,如显示Fetch/XHR请求,JS、CSS静态资源等

「概览面板」

前端必须知道的开发调试知识之Chrome DevToos

可以显示所有请求在每个事件段的分布情况

「请求列表面板」

前端必须知道的开发调试知识之Chrome DevToos

显示所有请求的信息:如名称、状态、类型、响应时间等

「总结面板」

前端必须知道的开发调试知识之Chrome DevToos对所有请求进行总结,如总完成时间,加载时间等

「请求详情面板」

前端必须知道的开发调试知识之Chrome DevToos可以查看一个请求的具体信息:如发过来的数据,标头等

应用 (Application)栏

应用 (Application):

应用 (Application)栏 可以显示网站的存储、缓存、后台服务等信息

前端必须知道的开发调试知识之Chrome DevToos
应用(Application)

「存储」

前端必须知道的开发调试知识之Chrome DevToos可以显示我们在localStorage, SessionStorage Cookie等信息

前端必须知道的开发调试知识之Chrome DevToos
Cookie

性能 (Performance)

性能 (Performance)

可以对网站某一时间端进行性能分析

如何进行分析:点击录制按钮,录制一段时间内的网站运行情况,点击结束,即可查看性能分析报告

前端必须知道的开发调试知识之Chrome DevToos
前端必须知道的开发调试知识之Chrome DevToos
网站性能分析图

「示例」

前端必须知道的开发调试知识之Chrome DevToos
image-20220805011413582.png

Linghthouse

Linghthouse

网站性能分析:通过分析得到该网站相关能力的评分,以及优化意见

前端必须知道的开发调试知识之Chrome DevToos点击 Analyze page load 按钮启动分析,稍等分析即可得到分析结果

前端必须知道的开发调试知识之Chrome DevToos


原文始发于微信公众号(yanghi):前端必须知道的开发调试知识之Chrome DevToos

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/227010.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!