使用debugger语句调试JScript的郁闷

简介:
  在JScript3.0中,微软引入了一个叫debugger的关键,用来帮助我们调试脚本代码。这样一来,我们就可以摒弃使用错误语句来触发调试的土方法了。结果在使用debugger语句的时候,发现它的一个优点居然同时也成为了一个缺点,在某些时候还没有土方法好用,真是郁闷。

    debugger关键字的作用是在JScript处于调试状态下运行时,为我们挂起当前执行并唤起脚本调试器。比如在我的机器上,开启了了IE的脚本调试支持后,脚本运行到debugger语句就会弹出下面这个Just-In-Time Debugger的选择框。Possible Debuggers列表中的内容,和你机器上已经安装了的调试器类型有关。
    JustInTimeDebugger.png

    在没有debugger语句和不知道它的时候,我一般使用错误语句来触发调试,就是在想调试的地方放入一个空引用对象的语句,比如:null.abc();。这样一来程序执行到这里就会产生类似debugger语句的效果,只是程序挂起在这里后,需要手动改变它的执行顺序来跳过错误语句(用鼠标拖那个黄色的箭头),而debugger产生的执行挂起直接按F10就过去了。并且debugger语句只会在脚本处于调试状态下运行时才生效,所以说还是比土方法好些的。

    可是这个debugger语句一旦被放入循环语句中就让人郁闷了,虽然每次的挂起可以F10过去,可是在循环中每次遇到debugger都会挂起,就是说循环需要执行多少次,就会让程序挂起多少次。而且没有option设置以跳过以后所有的挂起,如果遇到数量巨大的循环,我们只有kill当前浏览器进程这一个方法可以退出去。所以使用debugger语句一个需要注意的地方,就是尽量避免把它放在循环语句的循环体中。当然最好的可能是,微软以后在Just-In-Time Debugger那个对话框中再加一个option: Ignore all 'debugger' followed的checkbox选项。


本文转自博客园鸟食轩的博客,原文链接:http://www.cnblogs.com/birdshome/,如需转载请自行联系原博主。

目录
相关文章
|
Python
Python3,2行代码,多种方法,直接把网页内容转换成PDF文档和图片。
Python3,2行代码,多种方法,直接把网页内容转换成PDF文档和图片。
518 0
|
Oracle Java 关系型数据库
mybatis批量删除Batch delete
mybatis批量删除Batch delete
mybatis批量删除Batch delete
|
SQL 存储 开发框架
EntityFramework数据持久化复习资料2、隐式与匿名类型同匿名函数的使用
EntityFramework数据持久化复习资料2、隐式与匿名类型同匿名函数的使用
103 0
|
网络协议 API
2.2.3 Posix API与网络协议栈
2.2.3 Posix API与网络协议栈
117 0
|
Unix
bat批处理命令之Start的详细用法\批处理打开指定的应用程序\批处理最大化\最小化打开程序
bat批处理命令之Start的详细用法\批处理打开指定的应用程序\批处理最大化\最小化打开程序
3504 0
|
安全 固态存储 网络协议
Elasticsearch详解与安装
Elasticsearch详解与安装
287 2
|
SQL 关系型数据库 MySQL
【MySQL】索引和事务重点知识汇总
【MySQL】索引和事务重点知识汇总
27613 6
|
小程序 API 开发者
uni-app黑马优购项目学习记录(一:下)
uni-app黑马优购项目学习记录(第一节下部分)
uni-app黑马优购项目学习记录(一:下)
|
SQL 监控 Java
MSE 治理中心重磅升级-流量治理、数据库治理、同 AZ 优先
本次MSE治理中心在限流降级、数据库治理及同AZ优先方面进行了重磅升级,对微服务治理的弹性、依赖中间件的稳定性及流量调度的性能进行全面增强,致力于打造云原生时代的微服务治理平台。
|
5G 数据安全/隐私保护
阿里云企业邮箱收费标准年付价格(标准版、集团版和尊享版)
阿里云企业邮箱收费按照账号数收取,企业邮箱标准版、尊享版、集团版