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 相关文章推荐
用js自动判断浏览器分辨率的代码
Jan 28 Javascript
js 点击按钮弹出另一页,选择值后,返回到当前页
May 26 Javascript
jquery实现简单的拖拽效果实例兼容所有主流浏览器
Jun 21 Javascript
使用Bootstrap typeahead插件实现搜索框自动补全的方法
Jul 07 Javascript
jQuery日程管理插件fullcalendar使用详解
Jan 07 Javascript
JS 插件dropload下拉刷新、上拉加载使用小结
Apr 13 Javascript
微信小程序实现表单校验功能
Mar 30 Javascript
Angular实现可删除并计算总金额的购物车功能示例
Dec 26 Javascript
JS获取今天是本月第几周、本月共几周、本月有多少天、是今年的第几周、是今年的第几天的示例代码
Dec 05 Javascript
详解如何使用微信小程序云函数发送短信验证码
Mar 13 Javascript
ES6 let和const定义变量与常量的应用实例分析
Jun 27 Javascript
vscode自定义vue模板的实现
Jan 27 Vue.js
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
收音机的保养
2021/03/01 无线电
PHP 基于文件头的文件类型验证类函数
2012/05/01 PHP
PHP中array_slice函数用法实例详解
2014/11/25 PHP
jquery不支持toggle()高(新)版本的问题解决
2016/09/24 PHP
php的PDO事务处理机制实例分析
2017/02/16 PHP
2017年最好用的9个php开发工具推荐(超好用)
2017/10/23 PHP
PHP中使用CURL发送get/post请求上传图片批处理功能
2018/10/15 PHP
PHP去除空数组且数组键名重置的讲解
2019/02/28 PHP
ExtJS Grid使用SimpleStore、多选框的方法
2009/11/20 Javascript
js限制文本框为整数和货币的函数代码
2010/10/13 Javascript
nodejs win7下安装方法
2012/05/24 NodeJs
JavaScript实现Java中StringBuffer的方法
2015/02/09 Javascript
JavaScript模拟深蓝vs卡斯帕罗夫的国际象棋对局示例
2015/04/22 Javascript
仅30行代码实现Javascript中的MVC
2016/02/15 Javascript
javascript正则表达式中分组详解
2016/07/17 Javascript
jQuery+ajax实现修改密码验证功能实例详解
2017/07/06 jQuery
jQuery实现可兼容IE6的遮罩功能详解
2017/09/19 jQuery
Three.js实现绘制字体模型示例代码
2017/09/26 Javascript
微信小程序 按钮滑动的实现方法
2017/09/27 Javascript
css和js实现弹出登录居中界面完整代码
2017/11/26 Javascript
vue watch自动检测数据变化实时渲染的方法
2018/01/16 Javascript
javascript用defineProperty实现简单的双向绑定方法
2020/04/03 Javascript
一篇文章带你使用Typescript封装一个Vue组件(简单易懂)
2020/06/05 Javascript
js实现金山打字通小游戏
2020/07/24 Javascript
windows 10下安装搭建django1.10.3和Apache2.4的方法
2017/04/05 Python
python测试mysql写入性能完整实例
2018/01/18 Python
python中将两组数据放在一起按照某一固定顺序shuffle的实例
2019/07/15 Python
浅谈Django前端后端值传递问题
2020/07/15 Python
Django项目创建及管理实现流程详解
2020/10/13 Python
新闻记者实习自我鉴定
2013/09/19 职场文书
行政助理求职自荐信
2013/10/26 职场文书
运动会入场词100字
2014/02/06 职场文书
企业优秀团员事迹材料
2014/08/20 职场文书
端午节活动总结
2014/08/26 职场文书
物业客服专员岗位职责
2015/04/07 职场文书
Vue 打包后相对路径的引用问题
2022/06/05 Vue.js