前端开发调试 | 青训营笔记

127 阅读2分钟

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

前端比较好的地方就是方便运行、方便调试。对于用户而言,浏览器是用来检索、显示网页的地方,前端开发者眼里,浏览器还是运行代码、调试代码的地方。

bug 和 debug

程序员的生涯可以总结为写 bug 、 debug 这两个过程。作为前端小白的我,写 bug 方面我表示不虚,可到了 debug 方面往往是肉眼 debug 法或者 console.log()大法,略显单薄。

下面总结了一些前端 debug 技巧。

前端debug的特点

  1. 多平台

    浏览器、Hybrid、NodeJs、小程序、桌面应用...

  2. 多环境

    本地环境、线上环境

  3. 多工具

    Chrome devTools、Charles ...

  4. 多技巧

    Console、BreakPoint、sourceMap、代理...

Chrome DevTools

鼠标点击右键、选择检查进入DevTools

动态修改元素和样式(Elements面板)

  1. 点击具体的样式值,可以进行编辑,编辑内容实时预览。
  2. 点击.cls可以加新类名
  3. 点击.hov可以激活具有伪类的元素

Console

    console.log()
    console.warn()
    console.error()
    console.debug()
    console.info()
    console.table() //具象化展示 JSON 和数组数据
    console.dir() //通过类似文件树的方式展示对象属性

Scources

image.png

分为三个区域

  1. 页面资源文件目录树
  2. 代码预览区域

image.png 从左到右依次是:

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

  1. 断点调试器

使用 debugger 关键字或者断点,执行到此处时自动暂停。

Breakpoints 和 Watch

  1. 展开Breakpoints列表可以查看断点列表,勾选/取消可以激活/禁用对应断点。
  2. 在Watch右侧点击 + 可以添加对变量的监控,查看改变量的值。

Scope 和 Call Stack

  1. 展开 Scope 可以查看作用域列表(包含闭包)
  2. 展开 Call Stack 可以查看当前 JS 代码调用栈。

Source Map

出于安全考虑,JS 代码通常会被压缩,压缩后的代码只有一行,变量被'a'、'b' 等字母代替,这样的代码该如何调试。

使用Source Map 文件,其中mappings字段存储了源文件和 Source Map 的映射,mappings字段中的英文表示源码及压缩代码的位置关联,逗号表示分隔一行的内容。