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 学习初步 入门教程
Mar 25 Javascript
javascript 类型判断代码分析
Mar 28 Javascript
artDialog 4.1.5 Dreamweaver代码提示/补全插件 附下载
Jul 31 Javascript
WEB前端设计师常用工具集锦
Dec 09 Javascript
Jquery实现动态切换图片的方法
May 18 Javascript
自己动手写的javascript前端等待控件
Oct 30 Javascript
微信小程序 Record API详解及实例代码
Sep 30 Javascript
Bootstrap超大屏幕的实现代码
Mar 22 Javascript
JavaScript常用截取字符串的三种方式用法区别实例解析
May 15 Javascript
JavaScript 变量,数据类型基础实例详解【变量、字符串、数组、对象等】
Jan 04 Javascript
vue a标签点击实现赋值方式
Sep 07 Javascript
antd配置config-overrides.js文件的操作
Oct 31 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
Drupal7 form表单二次开发要点与实例
2014/03/02 PHP
PHP实现多图片上传类实例
2014/07/26 PHP
JavaScript 设计模式学习 Singleton
2009/07/27 Javascript
javascript 用原型继承来实现对象系统
2010/03/22 Javascript
图片img的src不变让浏览器重新加载实现方法
2013/03/29 Javascript
JS代码同步文本框内容的实例方法
2013/07/12 Javascript
jquery实现用户信息修改验证输入方法汇总
2015/07/18 Javascript
浅谈JavaScript前端开发的MVC结构与MVVM结构
2016/06/03 Javascript
Angular Module声明和获取重载实例代码
2016/09/14 Javascript
bootstrap基础知识学习笔记
2016/11/02 Javascript
基于JavaScript实现拖动滑块效果
2017/02/16 Javascript
video.js使用改变ui过程
2017/03/05 Javascript
Vue使用Canvas绘制图片、矩形、线条、文字,下载图片
2019/04/26 Javascript
layui radio单选限制下一个radio单选的实例
2019/09/03 Javascript
微信小程序和H5页面间相互跳转代码实例
2019/09/19 Javascript
JS数据类型STRING使用实例解析
2019/12/18 Javascript
Js生成随机数/随机字符串的方法小结【5种方法】
2020/05/27 Javascript
解决vue中el-tab-pane切换的问题
2020/07/19 Javascript
点球小游戏python脚本
2018/05/22 Python
python随机数分布random均匀分布实例
2019/11/27 Python
Python namedtuple命名元组实现过程解析
2020/01/08 Python
Python使用jpype模块调用jar包过程解析
2020/07/29 Python
pandas 按日期范围筛选数据的实现
2021/02/20 Python
英国网上自行车商店:Tredz Bikes
2019/10/29 全球购物
计算机应用专业学生的自我评价分享
2013/11/03 职场文书
办公室前台的岗位职责
2013/12/20 职场文书
销售心得体会
2014/01/02 职场文书
消防器材管理制度
2014/01/28 职场文书
亲属关系公证书
2014/04/08 职场文书
《记金华的双龙洞》教学反思
2014/04/19 职场文书
城管综合整治方案
2014/05/01 职场文书
2015年学校医务室工作总结
2015/07/20 职场文书
企业廉洁教育心得体会
2016/01/20 职场文书
MySQL查询学习之基础查询操作
2021/05/08 MySQL
解决SpringBoot文件上传临时目录找不到的问题
2021/07/01 Java/Android
Redis特殊数据类型Geospatial地理空间
2022/06/01 Redis