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 相关文章推荐
JS操作JSON要领详细总结
Aug 25 Javascript
JavaScript中prototype为对象添加属性的误区介绍
Oct 15 Javascript
sencha touch 模仿tabpanel导航栏TabBar的实例代码
Oct 24 Javascript
jQuery实现图片向左向右切换效果的简单实例
May 18 Javascript
javaScript给元素添加多个class的简单实现
Jul 20 Javascript
Bootstrap轮播插件使用代码
Oct 11 Javascript
JSON 必知必会 观后记
Oct 27 Javascript
js+div+css下拉导航菜单完整代码分享
Dec 28 Javascript
利用adb shell和node.js实现抖音自动抢红包功能(推荐)
Feb 22 Javascript
vue组件(全局,局部,动态加载组件)
Sep 02 Javascript
vue实现员工信息录入功能
Jun 11 Javascript
vue实现移动端拖动排序
Aug 21 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
adodb与adodb_lite之比较
2006/12/31 PHP
PHP 工厂模式使用方法
2010/05/18 PHP
php的日期处理函数及uchome的function_coomon中日期处理函数的研究
2011/01/12 PHP
PHP中通过语义URL防止网站被攻击的方法分享
2011/09/08 PHP
从零开始学YII2框架(五)快速生成代码工具 Gii 的使用
2014/08/20 PHP
php cookie名使用点号(句号)会被转换
2014/10/23 PHP
php array_values 返回数组的所有值详解及实例
2016/11/12 PHP
PHP中TP5 上传文件的实例详解
2017/07/31 PHP
OAuth认证协议中的HMACSHA1加密算法(实例)
2017/10/25 PHP
PHP 99乘法表的几种实现代码
2020/10/13 PHP
JQuery 给元素绑定click事件多次执行的解决方法
2014/09/09 Javascript
BootStrap使用popover插件实现鼠标经过显示并保持显示框
2016/06/23 Javascript
浅谈js和css内联外联注意事项
2016/06/30 Javascript
微信小程序 开发之快递查询功能的实现
2017/01/09 Javascript
Vue.js学习记录之在元素与template中使用v-if指令实例
2017/06/27 Javascript
基于vue cli重构多页面脚手架过程详解
2018/01/23 Javascript
解决Layui数据表格中checkbox位置不居中的方法
2018/08/15 Javascript
解决vue+element 键盘回车事件导致页面刷新的问题
2018/08/25 Javascript
vue+mock.js实现前后端分离
2019/07/24 Javascript
vue.js实现简单的计算器功能
2020/02/22 Javascript
js数组中去除重复值的几种方法
2020/08/03 Javascript
Python ORM框架SQLAlchemy学习笔记之安装和简单查询实例
2014/06/10 Python
Python实现备份文件实例
2014/09/16 Python
python多线程socket编程之多客户端接入
2017/09/12 Python
详解Python sys.argv使用方法
2019/05/10 Python
Python3读写ini配置文件的示例
2020/11/06 Python
马来西亚在线购物市场:PGMall.my
2019/10/13 全球购物
领导证婚人证婚词
2014/01/13 职场文书
教导处工作制度
2014/01/18 职场文书
十八届三中全会感言
2014/03/10 职场文书
个人委托书怎么写
2014/04/04 职场文书
入党积极分子批评与自我批评思想汇报
2014/09/14 职场文书
加强作风建设演讲稿
2014/10/24 职场文书
2016开学第一课心得体会
2016/01/23 职场文书
导游词之四川武侯祠
2019/10/21 职场文书
Python基础数据类型tuple元组的概念与用法
2021/08/02 Python