JS使用Chrome浏览器实现调试线上代码


Posted in Javascript onJuly 23, 2020

前言

之前调试前端bug都是在开发环境中做完并多次测试没有问题之后发布测试环境,验收合格之后发布生产。但生产环境偏偏会有和开发和测试环境不一致的情况,例如测试环境需要加密,而开发环境先不加密,测试环境传给我们的时间格式和生产环境时间格式不一致,数组对象不一致等导致线上生产报错的bug。

为了更好的在线上环境检测到具体的bug,节省我们在本地把地址改为生产的地址并走多一遍流程测试的麻烦,Chrome浏览器dbug测试就显得尤为重要了。

一、定位js代码并标记dbug

首先F12打开控制台,然后选择"Sources"选项卡,在Sources面板中选择要调试的文件,在右侧会打开该文件,浏览找到要调试的JavaScript代码,点击代码行号,设置dbug;

JS使用Chrome浏览器实现调试线上代码

像上面的两个console,第一个打印的是'aaa',第二个打印的是'bbb',此时在第二个console左侧点击一下,就会出现dbug的红点,刷新网页时,运行到第二个console就会停止,也就是只会打印aaa。

二、格式化显示的JS代码

现在很多公司都要求前端代码打包并加密,因此我们看到的代码可能几乎没有可读性可言,此时我们只需要点击下面的格式化按钮,浏览器就会自动帮我们整理好代码的格式,真心大爱Chrome。

JS使用Chrome浏览器实现调试线上代码

JS使用Chrome浏览器实现调试线上代码

三、跳转到下一个dbug/单步运行/步入行数内部

我们的程序大多数情况不可能只定位一个dbug,但定位太多个又会导致控制台显得很乱,并且无法直接在函数内部定位。

但幸运的是Chrome都有快捷键帮助我们解决上述问题。

JS使用Chrome浏览器实现调试线上代码

JS使用Chrome浏览器实现调试线上代码

JS使用Chrome浏览器实现调试线上代码

按下F8就可以运行完成就运行到下一个断点处,按F10就可以单步调试,就是指代码运行到下一行而不是下一个断点,按F11再点击代码的行号就可以在方法体的函数内部标记dbug。

四、查看变量的值

鼠标移到变量上面,就会显示变量的内容,右侧调试面板中的Scope中也可以看到局部变量的内容。

JS使用Chrome浏览器实现调试线上代码

JS使用Chrome浏览器实现调试线上代码

注意,如果在赋值前dbug没有运行到这个位置,那么显示的变量值为undefined。

五、利用Watch监视变量的值

在Source中选择变量,然后点击右键,在右键菜单中选择"Add selected text in watches",就会将当前选择的文本内容加到Watch中了,这里的内容会随着代码的执行而动态变化。

JS使用Chrome浏览器实现调试线上代码

六、利用Call Stack查看代码的层次关系以及Breakpoints查看所有断点

也是在Sources页下方就可以看到。

JS使用Chrome浏览器实现调试线上代码

七、最重要的一点--在Console中显示和改变变量值

在Console中直接输入变量,或是在Source中选择变量,然后点击右键,在右键菜单中选择"Evaluate in console",就可以在Console中显示变量的值了。也可以直接在Console中输入变量名=变量值,就可以修改变量的值了,相当于我们无需借助编辑器就可以调试线上的数据,而一旦报错浏览器也会定位到错误的行,可以说非常赞了。

这种方式可以在变量赋新值之前配合dbug使用,或者直接console出该变量的值,来确定是否和其他环境的值一样被自己解密或转变格式。

JS使用Chrome浏览器实现调试线上代码

总结

以上方式足够在线上环境找出大多数bug,最后在本地把接口地址换成开发环境的地址,代码改完后生产环境测试一遍,基本一步到位。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
超级强大的表单验证
Jun 26 Javascript
popdiv
Jul 14 Javascript
from 表单提交返回值用post或者是get方法实现
Aug 21 Javascript
文本框水印提示效果的简单实现代码
Feb 22 Javascript
原生javascript+css3编写的3D魔方动画旋扭特效
Mar 14 Javascript
在javaScript中检测数据类型的几种方式小结
Mar 04 Javascript
JS实现简单的天数计算器完整实例
Apr 28 Javascript
JavaScript捕捉事件和阻止冒泡事件实例分析
Aug 03 Javascript
详解在不使用ssr的情况下解决Vue单页面SEO问题
Nov 08 Javascript
小程序登录/注册页面设计的实现代码
May 24 Javascript
vue登录以及权限验证相关的实现
Oct 25 Javascript
vue 点击其他区域关闭自定义div操作
Jul 17 Javascript
JS实现鼠标按下拖拽效果
Jul 23 #Javascript
javascript利用canvas实现鼠标拖拽功能
Jul 23 #Javascript
JS如何实现封装列表右滑动删除收藏按钮
Jul 23 #Javascript
vue+iview框架实现左侧动态菜单功能的示例代码
Jul 23 #Javascript
JS前后端实现身份证号验证代码解析
Jul 23 #Javascript
vue实现用户长时间不操作自动退出登录功能的实现代码
Jul 23 #Javascript
在vue中封装的弹窗组件使用队列模式实现方法
Jul 23 #Javascript
You might like
PHP原理之异常机制深入分析
2010/08/08 PHP
提高define性能的php扩展hidef的安装和使用
2011/06/14 PHP
php 操作调试的方法
2012/07/12 PHP
PHP异常处理定义与使用方法分析
2017/07/25 PHP
[原创]PHP获取数组表示的路径方法分析【数组转字符串】
2017/09/01 PHP
php 数据结构之链表队列
2017/10/17 PHP
php7 图形用户界面GUI 开发示例
2020/02/22 PHP
jQuery拖动图片删除示例
2013/05/10 Javascript
JS图片无缝滚动(简单利于使用)
2013/06/17 Javascript
使用jQuery解决IE与FireFox下createElement方法的差异
2013/11/14 Javascript
[原创]推荐10款最热门jQuery UI框架
2014/08/19 Javascript
jQuery实现可关闭固定于底(顶)部的工具条菜单效果
2015/11/06 Javascript
关于backbone url请求中参数带有中文存入数据库是乱码的快速解决办法
2016/06/13 Javascript
JS表格组件BootstrapTable行内编辑解决方案x-editable
2016/09/01 Javascript
JavaScript编写一个简易购物车功能
2016/09/17 Javascript
为你的微信小程序体积瘦身详解
2017/05/20 Javascript
Mongoose中document与object的区别示例详解
2017/09/18 Javascript
vue中的ref和$refs的使用
2018/11/22 Javascript
基于webpack4.X从零搭建React脚手架的方法步骤
2018/12/23 Javascript
javascript实现商品图片放大镜
2019/11/28 Javascript
[01:04:31]DOTA2-DPC中国联赛定级赛 iG vs Magma BO3第二场 1月8日
2021/03/11 DOTA
python代码检查工具pylint 让你的python更规范
2012/09/05 Python
python使用线程封装的一个简单定时器类实例
2015/05/16 Python
python zip,lambda,map函数代码实例
2020/04/04 Python
小程序canvas中文字设置居中锚点
2019/04/16 HTML / CSS
Cecil Mode法国在线商店:女性时尚
2021/01/08 全球购物
信号量和自旋锁的区别?如何选择使用?
2015/09/08 面试题
环境工程求职简历的自我评价范文
2013/10/24 职场文书
大学生个人简历自我评价
2013/11/16 职场文书
精彩的推荐信范文
2013/11/26 职场文书
数学国培研修感言
2014/02/13 职场文书
知名企业招聘广告词大全
2014/03/18 职场文书
公务员政审单位鉴定材料
2014/05/16 职场文书
大学生违纪检讨书范文
2015/05/07 职场文书
2015年物业管理员工工作总结
2015/10/15 职场文书
vue项目支付功能代码详解
2022/02/18 Vue.js