开发者社区> 唐玄奘> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

使用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当前浏览器进程这一个方法可以退出去emdgust.gif。所以使用debugger语句一个需要注意的地方,就是尽量避免把它放在循环语句的循环体中。当然最好的可能是,微软以后在Just-In-Time Debugger那个对话框中再加一个option: Ignore all 'debugger' followed的checkbox选项。


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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
jasmine spyOn的单步调试
jasmine spyOn的单步调试
0 0
jasmine.FunctionMatchers.toHaveBeenCalledWith的单步调试
jasmine.FunctionMatchers.toHaveBeenCalledWith的单步调试
0 0
jasmine.objectContaining 的单步调试
jasmine.objectContaining 的单步调试
0 0
通过一个简单的例子,了解如何单步调试 Cypress 代码
通过一个简单的例子,了解如何单步调试 Cypress 代码
0 0
ABAP Debugging Script(调试器脚本)使用的一些实际例子
Use ABAP debugger script to view BOL entity content in an efficient way
0 0
ABAP调试器脚本的一个具体应用
ABAP调试器脚本的一个具体应用
0 0
Microsoft VBScript 运行时错误 错误 '800a0046' 没有权限 解决方法
首先看看是不是scrrun.dll 设置了拒绝权限(在windows/system32目录,右键文件,添加 IUSR+机器名 账户)....   一、如果您的系统提示“没有找到scrrun.dll”或者“缺少scrrun.dll”等类似错误信息,请把scrrun.dll下载到本机 二、直接拷贝该文件到系统目录里:    1、Windows 95/98/Me系统,则复制到C:Windows\System目录下。
933 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载