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 相关文章推荐
国外Lightbox v2.03.3 最新版 下载
Oct 17 Javascript
JavaScript实用技巧(一)
Aug 16 Javascript
有关DOM元素与事件的3个谜题
Nov 11 Javascript
javascript 学习笔记(八)javascript对象
Apr 12 Javascript
Javascript实现动态菜单添加的实例代码
Jul 05 Javascript
js调试系列 断点与动态调试[基础篇]
Jun 18 Javascript
Bootstrap教程JS插件弹出框学习笔记分享
May 17 Javascript
JS框架之vue.js(深入三:组件1)
Sep 29 Javascript
Vue.js教程之计算属性
Nov 11 Javascript
解析Vue2.0双向绑定实现原理
Feb 23 Javascript
Vue动态加载图片在跨域时无法显示的问题及解决方法
Mar 10 Javascript
Vue 实现拨打电话操作
Nov 16 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获取远程图片体积大小的实例
2013/11/12 PHP
php对二维数组进行排序的简单实例
2013/12/19 PHP
PHP中比较两个字符串找出第一个不同字符位置例子
2014/04/08 PHP
PHP编程快速实现数组去重的方法详解
2017/07/22 PHP
JavaScript 解析读取XML文档 实例代码
2009/07/07 Javascript
JavaScript类和继承 this属性使用说明
2010/09/03 Javascript
不使用中间变量,交换int型的 a, b两个变量的值。
2010/10/29 Javascript
JQuery入门——用映射方式绑定不同事件应用示例
2013/02/05 Javascript
JS中不为人知的五种声明Number的方式简要概述
2013/02/22 Javascript
JavaScript基础——使用Canvas绘图
2016/11/02 Javascript
原生JavaScript实现AJAX、JSONP
2017/02/07 Javascript
vue上传图片组件编写代码
2017/07/26 Javascript
浅谈JS获取元素的N种方法及其动静态讨论
2017/08/25 Javascript
Angular实现表单验证功能
2017/11/13 Javascript
微信小程序实现折线图的示例代码
2019/06/07 Javascript
JS实现的简单tab切换功能完整示例
2019/06/20 Javascript
vue 自动化路由实现代码
2019/09/03 Javascript
基于JS实现父组件的请求服务过程解析
2019/10/14 Javascript
Vue 实现可视化拖拽页面编辑器
2021/02/01 Vue.js
讲解python参数和作用域的使用
2013/11/01 Python
Python学习笔记_数据排序方法
2014/05/22 Python
Python生成pdf文件的方法
2014/08/04 Python
Python实现通过解析域名获取ip地址的方法分析
2019/05/17 Python
python3.6+selenium实现操作Frame中的页面元素
2019/07/16 Python
Pycharm中Python环境配置常见问题解析
2020/01/16 Python
Python多重继承之菱形继承的实例详解
2020/02/12 Python
Pycharm Git 设置方法
2020/09/15 Python
css3 box-shadow阴影(外阴影与外发光)图示讲解
2017/08/11 HTML / CSS
CSS3 二级导航菜单的制作的示例
2018/04/02 HTML / CSS
BannerBuzz加拿大:在线定制横幅印刷、广告和标志
2020/03/10 全球购物
2014年开学第一课活动方案
2014/03/06 职场文书
八一建军节营销活动方案
2014/08/31 职场文书
保安2014年终工作总结
2014/12/06 职场文书
银行实习推荐信
2015/03/27 职场文书
MATLAB 全景图切割及盒图显示的实现步骤
2021/05/14 Python
Python3.10的一些新特性原理分析
2021/09/15 Python