Javascript 是个好东西

一直以来,javascript 都是我在网页上才用一用,在别的地方都没有怎么考虑过它,总以为 C/C++/Delphi 这些东西是正途。此念头最近有所改观。

起因在于我的便携版 VC++ 6.0 的设置需要上。这个精简版的 VC++ 6.0 我已经使用了多年,一个 zip 常驻在我的 U 盘上。前些时要给别人使用,但是解压之后有些设置工作要做,比如头文件的路径、库文件的路径等等。对我来说是轻车熟路,不到两分钟的事情,但对其他人来说就未必。开头曾考虑过使用批处理完成,不过批处理的缺点是,要么你只能使用最简单最初级的功能,要么会面临极其晦涩的语法(例如 for 循环),调试起来更是没什么好的办法。突然想起来 WTL 的发布好像就是使用了本地 javascript 脚本,所以就了解了一下。结果凭着原来写网页的一些基础,半天就把那些设置问题搞定了。

手里恰好还有个公司别的同事的需求,希望能统计一下考勤表格离得一些数据。不由得想再挑战一下,用 javascript 驱动 Excel 的自动化接口来完成。昨天晚上和今天把所要用的技术点折腾了个差不多,还顺便学习了一下所谓的面向对象的 javascript 的一些粗浅知识。这个东西,语法由于类似与 C,所以入门上手非常容易,不过习惯了现代化 IDE 的便利性之后,还是想有一些非分之想。例如,语法高亮、自动完成、集成调试等功能。网上有个相当棒的玩意儿,名字叫 vbsedit。从名字就能看出来,这个东西主要着眼于 vbscript。把 javascript 的脚本文件扔进去,可以语法高亮,可也以调试,但是不能像对 vbscript 那样自动列出对象的属性和方法。还有个不方便的地方就是,价格贵(所以咱就不买了)而网上的注册码又不太管用。虽说可以一直试用,但是会在许多操作执行前跳出一个骚扰窗口,倒计时之后才能正常工作。最让人不爽的是,这个窗口倒计时的时间竟然是累计的,第一次 4 秒,第二次出现就会是需要等 5 秒,依次递增。单步执行就要了命了,每一步都会让等,无奈只好放弃(抽空倒是可以破解一下)。这个东西其实会依赖于微软自己在若干年前出的一个 Microsoft Script Debugger 的东西,由此我推断,不用 vbsedit 也应该有办法调试。

直接打开 Microsoft Script Debugger,让它打开 js 文件调试是不行的,它直接支持的是页面。经过若干次的试验,发现以下办法可以解决调试问题:
1、手动打开 Microsoft Script Debugger
2、在 js 中使用 debugger; 语句
3、使用 wscript 的 /d 参数运行你的脚本
貌似这三个条件缺一不可,在 Windows Vista SP1 上可以正常工作。

顺便说一下调试输出问题。和 Trace 之类的语句类似的构造,在 javascript 里是 Debug.write 语句。但是你可能会发现这种输出不知道该去哪里看。答案是:要打开 Microsoft Script Debugger 的 Command Window 窗口。调试输出会显示到这个窗口中,除此之外,如果在断点处要查看某个变量的内容,可以在此窗口内输入变量名,后面加分号,回车即可。

发表评论

电子邮件地址不会被公开。 必填项已用*标注