调试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 相关文章推荐
测试你的JS的掌握程度的代码
Dec 09 Javascript
jquery改变disabled的boolean状态的三种方法
Dec 13 Javascript
页面加载完成后再执行JS的jquery写法以及区别说明
Feb 22 Javascript
jquery-syntax动态语法着色示例代码
May 14 Javascript
javascript实现分栏显示小技巧附图
Oct 13 Javascript
jQuery实现下拉框多选 jquery-multiselect 的实例代码
Jul 14 Javascript
js实现数组去重方法及效率?Ρ? target=
Feb 14 Javascript
jQuery Ajax使用FormData上传文件和其他数据后端web.py获取
Jun 11 jQuery
Webpack中publicPath路径问题详解
May 03 Javascript
vue组件实现进度条效果
Jun 06 Javascript
Node.js对MongoDB进行增删改查操作的实例代码
Apr 18 Javascript
微信小程序基础教程之worker线程的使用方法
Jul 15 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
php 保留小数点
2009/04/21 PHP
php学习笔记之面向对象编程
2012/12/29 PHP
php遍历目录方法小结
2015/03/10 PHP
Laravel下生成验证码的类
2017/11/15 PHP
Javascript将string类型转换int类型
2010/12/09 Javascript
ASP.NET jQuery 实例4(复制TextBox的文本到本地剪贴板上)
2012/01/13 Javascript
jQuery选择器源码解读(二):select方法
2015/03/31 Javascript
内容滑动切换效果jquery.hwSlide.js插件封装
2016/07/07 Javascript
Vue.js每天必学之Class与样式绑定
2016/09/05 Javascript
jQuery弹出遮罩层效果完整示例
2016/09/13 Javascript
原生Javascript和jQuery做轮播图简单例子
2016/10/11 Javascript
Express框架之connect-flash详解
2017/05/31 Javascript
了解VUE的render函数的使用
2017/06/08 Javascript
node通过express搭建自己的服务器
2017/09/30 Javascript
Vue v2.4中新增的$attrs及$listeners属性使用教程
2018/01/08 Javascript
nodejs+express搭建多人聊天室步骤
2018/02/12 NodeJs
jQuery实现基本动画效果的方法详解
2018/09/06 jQuery
详解vue文件中使用echarts.js的两种方式
2018/10/18 Javascript
vue 项目地址去掉 #的方法
2018/10/20 Javascript
微信小程序五子棋游戏的悔棋实现方法【附demo源码下载】
2019/02/20 Javascript
JS使用栈判断给定字符串是否是回文算法示例
2019/03/04 Javascript
JavaScript的console命令使用实例
2019/12/03 Javascript
[04:40]2016国际邀请赛中国区预选赛全程TOP10镜头集锦
2016/07/01 DOTA
[00:36]TI7不朽珍藏III——斯温不朽展示
2017/07/15 DOTA
从零学Python之引用和类属性的初步理解
2014/05/15 Python
python获取指定路径下所有指定后缀文件的方法
2015/05/26 Python
python获取外网IP并发邮件的实现方法
2017/10/01 Python
python绘制圆柱体的方法
2018/07/02 Python
python多进程使用及线程池的使用方法代码详解
2018/10/24 Python
Python字符串的一些操作方法总结
2019/06/10 Python
详解用 python-docx 创建浮动图片
2021/01/24 Python
英国珠宝钟表和家居礼品精品店:David Shuttle
2018/02/24 全球购物
如何启动时不需输入用户名与密码
2014/05/09 面试题
优秀求职信范文分享
2014/01/26 职场文书
大学生素质拓展活动方案
2014/02/11 职场文书
导游词之上海东方明珠塔
2019/09/25 职场文书