有哪些 JS 调试技巧
1、代码格式化
可以将被压缩的代码自动展开
2、实时代码编辑
可以在运行时动态改变 JS 代码,并且不需要刷新页面就可以看到效果,一般用这个实时的在代码里插 console.log
3、DOM 事件/XHR 断点
可以针对 DOM 结构改变/属性改变/键盘鼠标事件 等下断点,直接断到事件的第一个 listener 函数上。还可以对 XHR
请求下断点,断到发起请求的那一行代码上
4、调用栈分析
这个非常常用,Scripts 面板下右上角的那一部分
5、自动异常断点
当代码执行出错时,可以自动断到出错的代码行上,直接分析出错时的运行时环境
6、分析 HTTP 请求
Network 面板下列出了所有的 HTTP 请求,可以很方便的查看请求内容、HTTP 头、请求时间等信息
以线上代码出 Bug 为例。一般上手第一步是使用代码格式化功能将被压缩的线上代码展开,然后开启自动异常断点,尝试重现 Bug。当 Bug
出现时代码会自动断到出错的那一行。然后通过调用栈分析结合控制台找到最开始出错的那个函数上。一般的 Bug 到这里就算找出来了,但是如果这个 Bug
是在事件回调函数或者 XHR 回调函数上,就得结合 DOM 事件断点和 XHR 断点 进一步往上找哪个函数出错。另外,如果是发给服务器请求没有得到正确的
response,可以通过 Network 面板查看请求的参数、Cookie、HTTP 头是否有误。