VBScript與JScript誰怕誰(3)
發(fā)表時間:2023-07-31 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]轉(zhuǎn)自: ChinaByte我們選擇了八個不同的測試?yán)蹋ㄋ袦y試用到的代碼已經(jīng)在本文后面的下載ZIP文件中提供)。如果語言本身不具備某個方法或函數(shù),則編寫一個專用的方法。 1.字符串翻轉(zhuǎn):進(jìn)行...
轉(zhuǎn)自: ChinaByte
我們選擇了八個不同的測試?yán)蹋ㄋ袦y試用到的代碼已經(jīng)在本文后面的下載ZIP文件中提供)。如果語言本身不具備某個方法或函數(shù),則編寫一個專用的方法。
1.字符串翻轉(zhuǎn):進(jìn)行這個測試不僅是因為它是一個很有代表性的操作,而且因為VBScript提供了內(nèi)建的StrReverse()函數(shù)而JScript卻沒有等價的函數(shù)或方法。這為我們提供了一個很好的混合語言編程測試案例。本測試中被翻轉(zhuǎn)的字符串是“String Reversal”。
2.在一個字符串中搜索另一個字符串:VBScript和JScript本身都提供實現(xiàn)該任務(wù)的方法。我們用VBScript的InStr()函數(shù)和JScript的indexOf()方法在字符串“This is a sentence written for the sake of writing a sentence.”中查找字符串“ke”的起始位置。
3.正則表達(dá)式模式匹配:雖然VBScript最近才加入了正則表達(dá)式支持,但這仍舊是一個很好的比較測試案例。JScript提供各種各樣能夠接受模式的String對象方法,使我們能夠更靈活地進(jìn)行處理;而VBScript沒有這么靈活,必須在RegExp對象所界定的范圍內(nèi)進(jìn)行。測試頁面包含一個函數(shù),這個函數(shù)接受字符串“Regular Expression Pattern Match”以及正則表達(dá)式“/(eg) y t{2,}/”,并返回匹配總次數(shù)。
4.位移操作:JScript有位操作符而VBScript沒有,這又是一個很好的比較測試案例。在進(jìn)行這個測試的頁面中將進(jìn)行下列操作:97 < < 5 以及 -14 > > 2。
5.簡單數(shù)學(xué)計算:進(jìn)行以下計算:18976.6754 + (-908.6) + 1475.211。
6.復(fù)雜數(shù)學(xué)計算:測試頁面包含這樣一個函數(shù),它根據(jù)兩個點的坐標(biāo)計算出它們之間的距離(英里)。VBScript的計算表達(dá)式為:
Distance = Round(Sqr(((69.1 *(latA-latB))^2) +
((69.1 * (Abs(lngA)-Abs(lngB)) * Cos(latB/57.3))^2)),1).
7.?dāng)?shù)組初始化:只要出現(xiàn)對數(shù)組元素的訪問,VBScript和JScript引擎都將創(chuàng)建整個數(shù)組的臨時拷貝,這也是一個很好的測試案例。另外,JScript的數(shù)組同時也是帶有許多方法和屬性的對象,而VBScript中數(shù)組只是一個數(shù)組。這個測試通過For循環(huán)初始化一個有100,000個元素的數(shù)組,每個元素都被賦予循環(huán)計數(shù)器的值。
8.ADO記錄集遍歷:這個測試使用的數(shù)據(jù)庫是Access2000的“Northwind”數(shù)據(jù)庫,程序通過ADO連接對象執(zhí)行“SELECT * FROM ORDERS”命令獲得一個ADO記錄集。程序利用兩個嵌套的循環(huán):外部循環(huán)遍歷記錄,內(nèi)部循環(huán)遍歷每個記錄的所有字段。這個測試案例之所以好,是因為JScript需要實例化一個Enumeration對象才能遍歷對象集合,而VBScript只需要一個For Each ... Next循環(huán)就可以完成同樣的任務(wù)。