JS调试必备的5个debug技巧


Posted in Javascript onMarch 07, 2014

1. debugger;

我以前也说过,你可以在JavaScript代码中加入一句debugger;来手工造成一个断点效果。
需要带有条件的断点吗?你只需要用if语句包围它:

if (somethingHappens) {
  debugger;
}

但要记住在程序发布前删掉它们。

2. 设置在DOM node发生变化时触发断点

有时候你会发现DOM不受你的控制,自己会发生一些奇怪的变化,让你很难找出问题的根源。

谷歌浏览器的开发工具里有一个超级好用的功能,专门可以对付这种情况,叫做“Break on…”,你在DOM节点上右键,就能看到这个菜单项。

断点的触发条件可以设置成这个节点被删除、节点的属性有任何变化,或它的某个子节点有变化发生。

JS调试必备的5个debug技巧

3. Ajax 断点

XHR断点,或Ajax断点,就像它们的名字一样,可以让我们设置一个断点,在特点的Ajax调用发生时触发它们。

当你在调试Web应用的网络传输时,这一招非常的有效。

JS调试必备的5个debug技巧

4. 移动设备模拟环境

谷歌浏览器里有一些非常有趣的模拟移动设备的工具,帮助我们调试程序在移动设备里的运行情况。

找到它的方法是:按F12,调出开发者工具,然后按ESC键(当前tab不能是Console),你就会看到第二层调试窗口出现,里面的Emulation标签页里有各种模拟设备可选。

当然,这不会就变成了真正的iPhone,只是模拟了iPhone的尺寸,触摸事件和浏览器User Agent值。

JS调试必备的5个debug技巧

5. 使用Audits改进你的网站

YSlow是一个非常棒的工具。谷歌浏览器的开发者工具里也有一个非常类似的工具,叫Audits

它可快速的审计你的网站,给你提出非常实际有效的优化你的网站的建议和方法。

JS调试必备的5个debug技巧

还有其它的吗?

没有这些工具,我不知道将如何开发。我还会写更多的关于这方面的技巧——一旦我有所发现,请关注我的最新文章。

Javascript 相关文章推荐
javascript 获取元素位置的快速方法 getBoundingClientRect()
Nov 26 Javascript
利用js的Node遍历找到repeater的一个字段实例介绍
Apr 25 Javascript
jquerymobile局部渲染的各种刷新方法小结
Mar 05 Javascript
让checkbox不选中即将选中的checkbox不选中
Jul 11 Javascript
超漂亮的Bootstrap 富文本编辑器summernote
Apr 05 Javascript
利用vue + koa2 + mockjs模拟数据的方法教程
Nov 22 Javascript
关于react中组件通信的几种方式详解
Dec 10 Javascript
详解webpack多页面配置记录
Jan 22 Javascript
kafka调试中遇到Connection to node -1 could not be established. Broker may not be available.
Sep 17 Javascript
layui form表单提交后实现自动刷新
Oct 25 Javascript
JavaScript实现栈结构Stack过程详解
Mar 07 Javascript
详解CocosCreator项目结构机制
Apr 14 Javascript
javascript中style.left和offsetLeft的用法说明
Mar 07 #Javascript
js读取被点击次数的简单实例(从数据库中读取)
Mar 07 #Javascript
js函数名与form表单元素同名冲突的问题
Mar 07 #Javascript
javascript(js)的小数点乘法除法问题详解
Mar 07 #Javascript
jquery中常用的函数和属性详细解析
Mar 07 #Javascript
jquery 操作两个select实现值之间的互相传递
Mar 07 #Javascript
JS判断文本框内容改变事件的简单实例
Mar 07 #Javascript
You might like
php简单统计字符串单词数量的方法
2015/06/19 PHP
浅析Yii2 GridView 日期格式化并实现日期可搜索教程
2016/04/22 PHP
php使用gd2绘制基本图形示例(直线、圆、正方形)
2017/02/15 PHP
PHP对象的浅复制与深复制的实例详解
2017/10/26 PHP
javascript:void(0)的作用示例介绍
2013/10/28 Javascript
JavaScript数组去重的五种方法
2015/11/05 Javascript
jquery弹出遮掩层效果【附实例代码】
2016/04/28 Javascript
js实现简单数字变动效果
2017/11/06 Javascript
判断滚动条滑到底部触发事件(实例讲解)
2017/11/15 Javascript
Echart折线图手柄触发事件示例详解
2018/12/16 Javascript
Vue动态组件和异步组件原理详解
2019/05/06 Javascript
JS实现滚动条触底加载更多
2019/09/19 Javascript
Vue+elementui 实现复杂表头和动态增加列的二维表格功能
2019/09/23 Javascript
countup.js实现数字动态叠加效果
2019/10/17 Javascript
js单线程的本质 Event Loop解析
2019/10/29 Javascript
webpack3.0升级4.0的方法步骤
2020/04/02 Javascript
Vue项目中使用mock.js的完整步骤
2021/01/12 Vue.js
[02:40]2014DOTA2 国际邀请赛中国区预选赛 四大豪门抵达华西村
2014/05/23 DOTA
详解Django中六个常用的自定义装饰器
2018/07/04 Python
在Python中使用gRPC的方法示例
2018/08/08 Python
对python3中, print横向输出的方法详解
2019/01/28 Python
Python中print和return的作用及区别解析
2019/05/05 Python
python使用turtle库绘制奥运五环
2020/02/24 Python
python3.8.1+selenium实现登录滑块验证功能
2020/05/22 Python
基于Python爬取素材网站音频文件
2020/10/21 Python
家得宝官网:The Home Depot(全球最大的家居装饰专业零售商)
2018/12/17 全球购物
JD Sports荷兰:英国领先的运动时尚零售商
2020/03/13 全球购物
《草虫的村落》教学反思
2014/02/16 职场文书
蟋蟀的住宅教学反思
2014/04/26 职场文书
机关职员工作检讨书
2014/10/23 职场文书
2015年社区关工委工作总结
2015/04/03 职场文书
南京南京观后感
2015/06/02 职场文书
2015教师个人年度工作总结
2015/10/23 职场文书
领导干部学习三严三实心得体会
2016/01/05 职场文书
《普罗米修斯》教学反思
2016/02/22 职场文书
MySQL 时间类型的选择
2021/06/05 MySQL