前端必须知道的开发调试知识| 青训营笔记

58 阅读4分钟

这是我参与「第四届青训营 」笔记创作活动的第2天

前端Debug特点

  • 多平台:浏览器、Hybrid、NodeJs、小程序,桌面应用...
  • 多环境:本地开发环境 , 线上环境
  • 多工具:Chrome devTools,Charles,Spy-Debugger...
  • 多技巧:控制台输出,设断电,SourceMap,代理...

PC端

例:Chrome Devtools(Chrome自带的调试工具)

如何使用?

  • 打开浏览器 -> 检查

  • Elements面板

    1.通过点击cls来显示元素样式,以及动态添加或删除类名 可以在style栏中实时修改样式

    用处:在前端开发中,可以通过这种方式进行样式的调试

    注意点:伪类并不能实时显示 如何调试伪类:点击伪类元素->forcestate->选中hover 当属性较多的时候:点击compted->侧边栏->搜索属性->切换到对应样式

    2.对元素本身进行修改 例:找到干扰项->delete

  • console面板

console.table:可以输出表格信息 console.dir:输出树形结构中结点信息

具体用处:使用console解决代码bug 存在问题的代码部分使用console.log,逐步排查(小方法:自定义参数)

  • source面板

在代码中输入debugger,程序会暂停运行 在代码段中添加断点,breakpoints中可以勾选取消对应的断点

补充:scope(作用域)和call stack(备用栈)与debug关系不大

用处 可以帮助我们查看js中有哪些作用

  • 压缩后的代码如何进行调试?

    • 解决方法:

    创建sourceMap,供我们调试,上线后再删除sourceMap(在监控平台上找到sourceMap,供我们调试)

  • sourceMap概念

    问题:源码和sourceMap文件是怎么对应上的? 答:sourceMap源码之间是映射的关系,所以可以快速的匹配上

  • performance面板

    • 生成报告,汇报页面是如何进行渲染的

    • 作用:定位到页面有哪些问题

  • network面板

    • 作用:定位与后端交互时产生的问题
    • 用法:查看request和response的内容来定位问题
  • Application

    • 与浏览器的本地存储有关

    • 如何清除缓存:
      Appication->storage->clear site data

总结概括

  1. Elements:查看dom结点,样式,调整样式。
  2. console:输出不同类型的日志,结合代码,解决不同的问题
  3. source:查看网页内容,通过debugger调试,查看变量值,帮助我们更好的定位问题
  4. Network:请求相关
  5. performance:性能相关
  6. Application:本地存储相关

三种前端开发必备的调试技术

在前端开发中,调试技术是必不可少的技能,下文将介绍三种前端开发必备的调试技术。

  • Weinre移动调试
  • DOM 断点
  • debugger断点

Weinre

在移动上面开发调试是很复杂的,所以就有了weinre。安装weinre可以实现pc来调试手机页面,所以对于移动开发调试是很重要的哦~

安装weinre

weinre可以通过npm来安装:

npm install -g weinre

安装完之后,可执行下面的命令来启动:

weinre --httpPort 8080 --boundHost -all-

这样访问自己的127.0.0.1:8080按照提示在需要调试页面中插入一段js,然后就可以调试了。操作界面类似Chrome的DevTools,具体操作自己找资料去

原理

通过在需要调试的页面中引入一段weinre的js,实现pc和手机的socket通信,从而实现实时调试。

DOM断点

DOM断点是一个Firebug和chrome DevTools提供的功能,当js需要操作打了断点的DOM时,会自动暂停,类似debugger调试。

  • 使用DOM断点

    1. 选择你要打断点的DOM节点
    2. 右键选择Break on..
    3. 选择断点类型
      image.png
  • Tips

    • Firebug中,DOM断点可以在Script> Breakpoints里面看到
    • chrome DevTools中,需要在Elements面板的DOM Breakpoints中看到
  • javascript的debugger语句

    需要调试js的时候,我们可以给需要调试的地方通过debugger打断点,代码执行到断点就会暂停,这时候通过单步调试等方式就可以调试js代码

  • 使用javascript的断点

    在需要打断点的地方添加debugger:

    if (waldo) {

      debugger;

    }

    这时候打开console面板,就可以调试了

  • Tips

如果你不知道怎么调试,那么尽快看下:Chrome DevTools中断点部分的教程