调试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 相关文章推荐
FF火狐下获取一个元素同类型的相邻元素实现代码
Dec 15 Javascript
JS 如何获取radio选中后的值及不选择取radio的值
Oct 28 Javascript
JS 去除Array中的null值示例代码
Nov 20 Javascript
js 定时器setTimeout无法调用局部变量的解决办法
Nov 28 Javascript
js验证输入是否为手机号码或电话号码示例
Dec 30 Javascript
对比分析AngularJS中的$http.post与jQuery.post的区别
Feb 27 Javascript
JavaScript动态添加style节点的方法
Jun 09 Javascript
jQuery往textarea中光标所在位置插入文本的方法
Jun 26 Javascript
angular directive的简单使用总结
May 24 Javascript
基于Require.js使用方法(总结)
Oct 26 Javascript
详解ES7 Decorator 入门解析
Feb 18 Javascript
在vue-cli 3中给stylus、sass样式传入共享的全局变量
Aug 12 Javascript
如何让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
PHP4 与 MySQL 数据库操作函数详解
2006/10/09 PHP
php中session使用示例
2014/03/29 PHP
Zend Framework基本页面布局分析
2016/03/19 PHP
[原创]php token使用与验证示例【测试可用】
2017/08/30 PHP
php微信公众号开发之关键词回复
2018/10/20 PHP
删除重复数据的算法
2006/11/23 Javascript
用js判断浏览器是否是IE的比较好的办法
2007/05/08 Javascript
Javascript 篱式条件判断
2008/08/22 Javascript
javascript 得到变量类型的函数
2010/05/19 Javascript
JavaScript Ajax Json实现上下级下拉框联动效果实例代码
2013/11/23 Javascript
js入门之Function函数的使用方法【新手必看】
2016/11/22 Javascript
利用angular.copy取消变量的双向绑定与解析
2016/11/25 Javascript
JavaScript编写九九乘法表(两种任选)
2017/02/04 Javascript
ionic2自定义cordova插件开发以及使用(Android)
2017/06/19 Javascript
利用canvas中toDataURL()将图片转为dataURL(base64)的方法详解
2017/11/20 Javascript
基于$.ajax()方法从服务器获取json数据的几种方式总结
2018/01/31 Javascript
ES6之模版字符串的具体使用
2018/05/17 Javascript
javascript移动端 电子书 翻页效果实现代码
2019/09/07 Javascript
小程序实现录音上传功能
2019/11/22 Javascript
nodejs nedb 封装库与使用方法示例
2020/02/06 NodeJs
vue 解决无法对未定义的值,空值或基元值设置反应属性报错问题
2020/07/31 Javascript
vscode 使用Prettier插件格式化配置使用代码详解
2020/08/10 Javascript
[01:53]3.19 DOTA2发布会 现场精彩Coser表演
2014/03/25 DOTA
[08:08]2014DOTA2国际邀请赛中国区预选赛精彩TOPPLAY
2014/06/25 DOTA
[01:05:07]DOTA2-DPC中国联赛 正赛 DLG vs Dragon BO3 第一场2月1日
2021/03/11 DOTA
linux下安装easy_install的方法
2013/02/10 Python
Python多线程、异步+多进程爬虫实现代码
2016/02/17 Python
详解pandas安装若干异常及解决方案总结
2019/01/10 Python
Python __slots__的使用方法
2020/11/15 Python
工厂保安员岗位职责
2014/01/31 职场文书
初中毕业生的自我评价
2014/03/03 职场文书
2015年幼儿园个人工作总结
2015/04/25 职场文书
学校推普周活动总结
2015/05/07 职场文书
具结保证书范本
2015/05/11 职场文书
父母教会我观后感
2015/06/17 职场文书
MySQL基础快速入门知识总结(附思维导图)
2021/09/25 MySQL