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 相关文章推荐
有趣的javascript数组定义方法
Sep 10 Javascript
JS实现随机乱撞彩色圆球特效的方法
May 05 Javascript
JS实现从连接中获取youtube的key实例
Jul 02 Javascript
js点击按钮实现带遮罩层的弹出视频效果
Dec 19 Javascript
浅谈javascript中的Function和Arguments
Aug 30 Javascript
Angularjs分页查询的实现
Feb 24 Javascript
Underscore之Array_动力节点Java学院整理
Jul 10 Javascript
mongoose更新对象的两种方法示例比较
Dec 19 Javascript
Vue封装的可编辑表格插件方法
Aug 28 Javascript
vue2 v-model/v-text 中使用过滤器的方法示例
May 09 Javascript
Vue 前端实现登陆拦截及axios 拦截器的使用
Jul 17 Javascript
Vue3 Composition API的使用简介
Mar 29 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
php你的验证码安全码?
2007/01/02 PHP
体育彩票排列三组选三算法分享
2014/03/07 PHP
php实例分享之html转为rtf格式
2014/06/02 PHP
PHP rsa加密解密使用方法
2015/04/27 PHP
Nginx服务器上安装并配置PHPMyAdmin的教程
2015/08/18 PHP
swoole和websocket简单聊天室开发
2017/11/18 PHP
jquery中的$(document).ready()与window.onload的区别
2009/11/18 Javascript
在一个浏览器里呈现所有浏览器测试结果的前端测试工具的思路
2010/03/02 Javascript
MC Dialog js弹出层 完美兼容多浏览器(5.6更新)
2010/05/06 Javascript
MyEclipse取消验证Js的两种方法
2013/11/14 Javascript
JavaScript实现简单的时钟实例代码
2013/11/23 Javascript
Webpack 实现 AngularJS 的延迟加载
2016/03/02 Javascript
Vue.js手风琴菜单组件开发实例
2017/05/16 Javascript
JS实现商品筛选功能
2020/08/19 Javascript
JavaScript实现的搜索及高亮显示功能示例
2017/08/14 Javascript
vue项目实战总结篇
2018/02/11 Javascript
AJAX在JQuery中的应用详解
2019/01/30 jQuery
node.JS路径解析之PATH模块使用方法详解
2020/02/06 Javascript
python实现文件快照加密保护的方法
2015/06/30 Python
详解Django之admin组件的使用和源码剖析
2018/05/04 Python
Python实现批量修改图片格式和大小的方法【opencv库与PIL库】
2018/12/03 Python
解决python3 pika之连接断开的问题
2018/12/18 Python
Python自动化导出zabbix数据并发邮件脚本
2019/08/16 Python
Python3将jpg转为pdf文件的方法示例
2019/12/13 Python
Python使用socketServer包搭建简易服务器过程详解
2020/06/12 Python
Joules官网:女士、男士和儿童服装和鞋类
2018/10/23 全球购物
Trip.com澳大利亚:在线旅行社
2019/12/01 全球购物
3个CCIE对一个工程师的面试题
2012/05/06 面试题
土建施工员岗位职责
2014/07/16 职场文书
创优争先心得体会
2014/09/11 职场文书
党的群众路线教育实践活动总结材料
2014/10/30 职场文书
总经理聘用协议书
2015/09/21 职场文书
go mod 安装依赖 unkown revision问题的解决方案
2021/05/06 Golang
MySQL 使用自定义变量进行查询优化
2021/05/14 MySQL
MySQL 数据恢复的多种方法汇总
2021/06/21 MySQL
SQL模糊查询报:ORA-00909:参数个数无效问题的解决
2021/06/21 Oracle