调试Javascript代码(浏览器F12及VS中debugger关键字)


Posted in Javascript onJanuary 25, 2013

目前,常用的浏览器IE、Chrome、Firefox都有相应的脚本调试功能。作为我们.NET 阵营,学会如何在IE中调试JS就足够了,在掌握了IE中的调试方法以后,Chrome和Firefox中的调试方法也变得相当简单了。

JavaScript debugger 语句

开启 debugger ,代码在执行到第三行前终止。

var x = 15 * 5;
debugger;
document.getElementbyId("demo").innerHTML = x;

定义和用法

debugger 语句用于停止执行 JavaScript,并调用 (如果可用) 调试函数。
使用 debugger 语句类似于在代码中设置断点。
通常,你可以通过按下 F12 开启调试工具, 并在调试菜单中选择 "Console" 。
注意: 如果调试工具不可用,则调试语句将无法工作。

在F12开发人员工具中进行调试

打开IE浏览器,按下F12键,就会打开开发人员工具,这是IE内置的开发人员开发工具,方便开发人员对HTML、CSS、Javascript等网页资源进行跟踪调试使用的。

调试Javascript代码(浏览器F12及VS中debugger关键字)

如果你打开的时候没有固定在网页底部,可以点击右上角菜单栏中的按钮来完成。

调试Javascript代码(浏览器F12及VS中debugger关键字)

我们看到在这个工具窗口里面有几个标签页,分别是:HTML、CSS、控制台、脚本、探查器和网络,点开每一个标签,可以执行相应的任务。

在HTML标签窗口中,工具栏中的按钮所执行的操作如下图:

调试Javascript代码(浏览器F12及VS中debugger关键字)

CSS标签是用来查看样式的;控制台显示网页中JS的各种输出信息,包括错误信息、用户日志等;打开脚本标签页,这里面才是我们想要的内容。

调试Javascript代码(浏览器F12及VS中debugger关键字)

我在图中用黄色矩形选中连个控件,左侧的下拉列表用来选择文件,右侧的按钮用来启动调试。当点击启动调试后,调试程序会将窗口最大化,我们在选中的文件中找到需要调试的位置,点击左侧边栏添加断点即可进行调试。

调试Javascript代码(浏览器F12及VS中debugger关键字)

当有程序运行到我们的断点处时,就可以进行调试了。

调试Javascript代码(浏览器F12及VS中debugger关键字)

在这里,我们可以使用快捷键进行操作,常用的快捷键如下

F9:添加/移除 断点

F10:逐过程,即跳过该语句中的方法、表达式等

F11:逐语句调试,即单步调试,会跳入方法、表达式,进行逐语句的跟踪调试

在执行过程中,如果我们要执行即时的代码,我们就需要在右侧的窗格中输入代码,按回车即可。

调试Javascript代码(浏览器F12及VS中debugger关键字)

如果要执行多行代码,点击运行按钮右侧的双箭头,就会打开多行模式。我就不再截图片了。

这种直接在浏览器中调试的方法同样适用于Google浏览器Chrome和FireFox FireDebug,只不过在细枝末叶上面有些不同罢了,主体的功能都是一样的。

按F12键进入开发者工具,可以查看源代码、样式和js。

调试Javascript代码(浏览器F12及VS中debugger关键字)

点击Scripts按钮,可以打开这个调试窗口,里面包含了网页中脚本文件源码,点击左侧的按钮可以打开选择文件的侧窗口。右侧有调试的工具按钮,不过我不喜欢这些纯英文的界面,所以大部分的调试都还是在IE下进行。并且会在IE下转到VS中。

下面我就介绍如何在VS中调试我们的JS代码。

使用debugger关键字进行调试

这种方法很简单,我们只需要在进行调试的地方加入debugger关键字,然后当浏览器运行到这个关键字的时候,就会提示是否打开调试,我们选择是就可以了。这种调试可以选择调试工具,是新打开vs还是在现有的VS中调试,都可以选择,个人比较喜欢这中调试方式。

调试Javascript代码(浏览器F12及VS中debugger关键字)

当我们运行这段程序的时候,会弹出调试提示窗口:

调试Javascript代码(浏览器F12及VS中debugger关键字)

如果你的浏览器没有弹出这个窗口,你需要进行一下简单的设置,打开Internet选项:

调试Javascript代码(浏览器F12及VS中debugger关键字)

将红色方框中的两项取消勾选就可以了。

设置以后就可以使用debugger关键字进行调试了;进过这样的设置,我们还可以捕获到意外的错误,进行跟踪调试。

好了,本文就介绍到这里,有不明白的地方请和我交流。调试是一个实践的过程,只有使用次数多了,才能掌握其中的方法和技巧。

Javascript 相关文章推荐
不用AJAX和IFRAME,说说真正意义上的ASP+JS无刷新技术
Sep 25 Javascript
javascript 表格排序和表头浮动效果(扩展SortTable)
Apr 07 Javascript
jQuery 表单验证插件formValidation实现个性化错误提示
Jun 23 Javascript
$.get获取一个文件的内容示例代码
Sep 11 Javascript
jquery用data方法获取某个元素上的事件
Jun 23 Javascript
js和jquery中循环的退出和继续下一个循环
Sep 03 Javascript
React + webpack 环境配置的方法步骤
Sep 07 Javascript
VueJs里利用CryptoJs实现加密及解密的方法示例
Apr 29 Javascript
html+jQuery实现拖动滑块图片拼图验证码插件【移动端适用】
Sep 10 jQuery
Python版实现微信公众号扫码登陆
May 28 Javascript
jQuery实现可以扩展的日历
Dec 01 jQuery
vue实现在data里引入相对路径
Jun 05 Vue.js
如何让easyui gridview 宽度自适应窗口改变及fitColumns应用
Jan 25 #Javascript
js隐藏与显示回到顶部按钮及window.onscroll事件应用
Jan 25 #Javascript
jquery移除button的inline onclick事件(已测试及兼容浏览器)
Jan 25 #Javascript
javascript表单验证 - Parsley.js使用和配置
Jan 25 #Javascript
THREE.JS入门教程(6)创建自己的全景图实现步骤
Jan 25 #Javascript
使用JavaScript动态设置样式实现代码(2)
Jan 25 #Javascript
使用JavaScript动态设置样式实现代码及演示动画
Jan 25 #Javascript
You might like
解决phpmyadmin 乱码,支持gb2312和utf-8
2006/11/20 PHP
PHP包含文件函数include、include_once、require、require_once区别总结
2014/04/05 PHP
THINKPHP2.0到3.0有哪些改进之处
2015/01/04 PHP
提高php编程效率技巧
2015/08/13 PHP
php结合md5实现的加密解密方法
2016/01/25 PHP
Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解
2017/10/11 PHP
PHP一致性hash分布式算法封装类定义与用法示例
2018/08/04 PHP
滚动条变色 隐藏滚动条与双击网页自动滚屏显示代码
2009/12/28 Javascript
JavaScript去掉空格的方法集合
2010/12/28 Javascript
js操作CheckBoxList实现全选/反选(在客服端完成)
2013/02/02 Javascript
关于jquery的多个选择器的使用示例
2013/10/18 Javascript
javascript实现简单的html5视频播放器
2015/05/06 Javascript
jQuery实现按钮只点击一次后就取消点击事件绑定的方法
2015/06/26 Javascript
angularjs自定义ng-model标签的属性
2016/01/21 Javascript
快速掌握Node.js事件驱动模型
2016/03/21 Javascript
jQuery 实现评论等级好评差评特效
2016/05/06 Javascript
全面解析Bootstrap中form、navbar的使用方法
2016/05/30 Javascript
js捕捉键盘事件和按键键值的方法
2016/10/10 Javascript
浅谈jQuery中的eq()与DOM中element.[]的区别
2016/10/28 Javascript
layui弹出层效果实现代码
2017/05/19 Javascript
Node.js 实现简单的接口服务器的实例代码
2017/05/23 Javascript
手把手教你 CKEDITOR 4 扩展插件制作
2019/06/18 Javascript
es6中new.target的作用和使用场景简单示例分析
2020/03/14 Javascript
JavaScript实现H5接金币功能(实例代码)
2021/02/22 Javascript
[03:53]2016国际邀请赛中国区预选赛第三日TOP10精彩集锦
2016/06/29 DOTA
python实现从一组颜色中找出与给定颜色最接近颜色的方法
2015/03/19 Python
详解python3中zipfile模块用法
2018/06/18 Python
python命令行参数用法实例分析
2019/06/25 Python
python使用 zip 同时迭代多个序列示例
2019/07/06 Python
pytorch索引查找 index_select的例子
2019/08/18 Python
tensorflow如何继续训练之前保存的模型实例
2020/01/21 Python
关于Django Models CharField 参数说明
2020/03/31 Python
家长给幼儿园的表扬信
2014/01/09 职场文书
工程索赔意向书
2014/08/30 职场文书
唐山大地震观后感
2015/06/05 职场文书
Python echarts实现数据可视化实例详解
2022/03/03 Python