推荐5 个常用的JavaScript调试技巧


Posted in Javascript onJanuary 08, 2015

我之前使用过用printf debugging,自此之后我用这种方法似乎总能更快地解决bug。
在某些情况下需要更好的工具,下面是其中的一些佼佼者,我敢肯定你会发现它们的有用之处:

1. debugger;

你可以使用“debugger;”语句在代码中加入强制断点。
需要断点条件吗?只需将它包装它在IF子句中:

if (somethingHappens) {

debugger;

}

只需记住在上线前移除。

2. 当节点变化时断开

有时DOM像有了自己的想法。当不可思议的变化发生时很难找到问题的根源。
Chrome开发人员工有调试这个问题的超级有用技能。这就是所谓的“Break on…”,你可以通过在元素选项卡上右键DOM节点找到它。

断点可以在节点被删除后设置,当节点的属性更改或者其子树中的节点变化时。
推荐5 个常用的JavaScript调试技巧

3. Ajax断点

XHR断点或我称作的Ajax断点,也允许当一个预期Ajax请求创建时断开。
当调试你的web应用的网络时这是个让人吃惊的工具。
推荐5 个常用的JavaScript调试技巧

4. 模拟不同的移动设备

Chrome增加了内置的移动设备模拟工具,这将简化你的日常工作。
选择任何非Console的选项卡找到它们,按键盘上的esc键并选择你想摸你的移动设备。

你当然不会得到一个真正的iPhone,但尺寸、触摸事件和agemt都会为你效仿。
推荐5 个常用的JavaScript调试技巧

5. 通过审核提升你的站点

YSlow是个伟大的工具。Chrome也在开发人员工具下包含一个称作Audits的类似工具。
使用快速审核一下你的网站,来获得有用实际的优化技巧。
推荐5 个常用的JavaScript调试技巧

还有什么呢?

没有这些工具我不能想象如何开发。当我发现新的后我会发布更多,敬请期待。

Javascript 相关文章推荐
基于jquery的当鼠标滚轮到最底端继续加载新数据思路分享(多用于微博、空间、论坛 )
Oct 10 Javascript
二叉树的非递归后序遍历算法实例详解
Feb 07 Javascript
javascript圆盘抽奖程序实现原理和完整代码例子
Jun 03 Javascript
jQuery验证元素是否为空的两种常用方法
Mar 17 Javascript
基于js实现微信发送好友如何分享到朋友圈、微博
Nov 30 Javascript
浅析JavaScript中命名空间namespace模式
Jun 22 Javascript
vue2中filter()的实现代码
Jul 09 Javascript
jQuery EasyUI的TreeGrid查询功能实现方法
Aug 08 jQuery
20170918 前端开发周报之JS前端开发必看
Sep 18 Javascript
JS实现动态生成html table表格的方法分析
Jul 11 Javascript
vue中关闭eslint的方法分析
Aug 04 Javascript
JavaScript 中的六种循环方法
Jan 06 Javascript
jQuery中prevUntil()方法用法实例
Jan 08 #Javascript
jQuery中prevAll()方法用法实例
Jan 08 #Javascript
jQuery中prev()方法用法实例
Jan 08 #Javascript
深入探密Javascript数组方法
Jan 08 #Javascript
用模版生成HTML的的框架jquery.tmpl使用详解
Jan 07 #Javascript
jQuery中parentsUntil()方法用法实例
Jan 07 #Javascript
jQuery中parents()方法用法实例
Jan 07 #Javascript
You might like
索尼SONY SRF-S83/84电路分析和打磨
2021/03/02 无线电
如何从一个php文件向另一个地址post数据,不用表单和隐藏的变量的
2007/03/06 PHP
PHP STRING 陷阱原理说明
2010/07/24 PHP
解析php session_set_save_handler 函数的用法(mysql)
2013/06/29 PHP
php配置php-fpm启动参数及配置详解
2013/11/04 PHP
PHP+MySQL存储数据常见中文乱码问题小结
2016/06/13 PHP
JSON语法五大要素图文介绍
2012/12/04 Javascript
chrome浏览器不支持onmouseleave事件的解决技巧
2013/05/31 Javascript
jquery封装的对话框简单实现
2013/07/21 Javascript
js使用for循环与innerHTML获取选中tr下td值
2014/09/26 Javascript
jquery提示效果实例分析
2014/11/25 Javascript
浅谈Javascript中匀速运动的停止条件
2014/12/19 Javascript
js检测判断日期大于多少天的方法
2015/05/04 Javascript
Jqgrid之强大的表格插件应用
2015/12/02 Javascript
JavaScript禁止复制与粘贴的实现代码
2016/05/16 Javascript
浅谈js内置对象Math的属性和方法(推荐)
2016/09/19 Javascript
AngularJS删除路由中的#符号的方法
2016/09/20 Javascript
微信小程序 教程之条件渲染
2016/10/18 Javascript
再谈Angular4 脏值检测(性能优化)
2018/04/23 Javascript
Vue中的scoped实现原理及穿透方法
2018/05/15 Javascript
JS实现统计字符串中字符出现个数及最大个数功能示例
2018/06/04 Javascript
使用Angular-CLI构建NPM包的方法
2018/09/07 Javascript
微信小程序 简易计算器实现代码实例
2019/09/02 Javascript
浅谈关于vue中scss公用的解决方案
2019/12/02 Javascript
[46:53]Secret vs Liquid 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Python的Flask框架中实现登录用户的个人资料和头像的教程
2015/04/20 Python
Python网络爬虫神器PyQuery的基本使用教程
2018/02/03 Python
tensorflow 20:搭网络,导出模型,运行模型的实例
2020/05/26 Python
Python基于locals返回作用域字典
2020/10/17 Python
python+playwright微软自动化工具的使用
2021/02/02 Python
HTML5 video 事件应用示例
2014/09/11 HTML / CSS
管理信息系学生的自我评价
2014/01/11 职场文书
2014年物业管理工作总结
2014/11/21 职场文书
办公用房租赁协议书
2014/11/29 职场文书
超市主管竞聘书
2015/09/15 职场文书
vue3中的组件间通信
2021/03/31 Vue.js