VBScript与JScript谁怕谁(3)

转自: ChinaByte
我们选择了八个不同的测试例程(所有测试用到的代码已经在本文后面的下载ZIP文件中提供)。如果语言本身不具备某个方法或函数,则编写一个专用的方法。

   1.字符串翻转:进行这个测试不仅是因为它是一个很有代表性的操作,而且因为VBScript提供了内建的StrReverse()函数而JScript却没有等价的函数或方法。这为我们提供了一个很好的混合语言编程测试案例。本测试中被翻转的字符串是“String Reversal”。

   2.在一个字符串中搜索另一个字符串:VBScript和JScript本身都提供实现该任务的方法。我们用VBScript的InStr()函数和JScript的indexOf()方法在字符串“This is a sentence written for the sake of writing a sentence.”中查找字符串“ke”的起始位置。

   3.正则表达式模式匹配:虽然VBScript最近才加入了正则表达式支持,但这仍旧是一个很好的比较测试案例。JScript提供各种各样能够接受模式的String对象方法,使我们能够更灵活地进行处理;而VBScript没有这么灵活,必须在RegExp对象所界定的范围内进行。测试页面包含一个函数,这个函数接受字符串“Regular Expression Pattern Match”以及正则表达式“/(eg)|y|t{2,}/”,并返回匹配总次数。

   4.位移操作:JScript有位操作符而VBScript没有,这又是一个很好的比较测试案例。在进行这个测试的页面中将进行下列操作:97 < < 5 以及 -14 > > 2。

   5.简单数学计算:进行以下计算:18976.6754 + (-908.6) + 1475.211。

   6.复杂数学计算:测试页面包含这样一个函数,它根据两个点的坐标计算出它们之间的距离(英里)。VBScript的计算表达式为:
Distance = Round(Sqr(((69.1 *(latA-latB))^2) +
((69.1 * (Abs(lngA)-Abs(lngB)) * Cos(latB/57.3))^2)),1).

   7.数组初始化:只要出现对数组元素的访问,VBScript和JScript引擎都将创建整个数组的临时拷贝,这也是一个很好的测试案例。另外,JScript的数组同时也是带有许多方法和属性的对象,而VBScript中数组只是一个数组。这个测试通过For循环初始化一个有100,000个元素的数组,每个元素都被赋予循环计数器的值。

   8.ADO记录集遍历:这个测试使用的数据库是Access2000的“Northwind”数据库,程序通过ADO连接对象执行“SELECT * FROM ORDERS”命令获得一个ADO记录集。程序利用两个嵌套的循环:外部循环遍历记录,内部循环遍历每个记录的所有字段。这个测试案例之所以好,是因为JScript需要实例化一个Enumeration对象才能遍历对象集合,而VBScript只需要一个For Each … Next循环就可以完成同样的任务。