
- VBScript教程
- VBScript - 首頁
- VBScript - 概述
- VBScript - 語法
- VBScript - 啟用
- VBScript - 位置
- VBScript - 變數
- VBScript - 常量
- VBScript - 運算子
- VBScript - 決策
- VBScript - 迴圈
- VBScript - 事件
- VBScript - Cookie
- VBScript - 數字
- VBScript - 字串
- VBScript - 陣列
- VBScript - 日期
- VBScript 高階
- VBScript - 過程
- VBScript - 對話方塊
- VBScript - 面向物件
- VBScript - 正則表示式
- VBScript - 錯誤處理
- VBScript - 其他語句
- VBScript 有用資源
- VBScript - 問答
- VBScript - 快速指南
- VBScript - 有用資源
- VBScript - 討論
VBScript面試題
尊敬的讀者,這些VBScript面試題專為幫助您瞭解在VBScript面試中可能遇到的問題型別而設計。根據我的經驗,優秀的考官很少會提前計劃好面試中的具體問題,通常會從該主題的一些基本概念開始提問,然後根據後續討論和您的回答繼續提問。
Microsoft VBScript(Visual Basic Script)是由微軟開發的一種通用的、輕量級的活動指令碼語言,其模型基於Visual Basic。如今,VBScript是Quick Test Professional (QTP)的主要指令碼語言,QTP是一種測試自動化工具。
以下是VBScript的優點:
VBScript是一種輕量級的指令碼語言,具有極快的直譯器。
VBScript在很大程度上不區分大小寫。它具有非常簡單的語法,易於學習和實現。
與C++或Java不同,VBScript是一種基於物件的指令碼語言,而不是面向物件的程式語言。
它使用元件物件模型(COM)來訪問其執行環境中的元素。
只有在宿主環境(如Internet Explorer (IE)、Internet Information Services (IIS)和Windows Scripting Host (WSH))中執行時,VBScript才能成功執行。
以下是VBScript的缺點:
VBScript僅被IE瀏覽器使用。其他瀏覽器,如Chrome、Firefox,不支援VBScript。因此,JavaScript優於VBScript。
VBScript的命令列支援有限。
由於預設情況下沒有可用的開發環境,因此除錯很困難。
不!VBScript是一種不區分大小寫的語言。這意味著語言關鍵字、變數、函式名以及任何其他識別符號不需要使用一致的大寫字母。
因此,識別符號int_counter、INT_Counter和INT_COUNTER在VBScript中具有相同的含義。
變數是用於儲存可在指令碼執行期間更改的值的命名記憶體位置。VBScript只有一個基本資料型別,即Variant。
宣告變數的規則:
變數名必須以字母開頭。
變數名不能超過255個字元。
變數不應該包含句點(.)
在宣告的上下文中,變數名應該唯一。
使用“dim”關鍵字宣告變數。
不需要!由於只有一個基本資料型別,所有宣告的變數預設都是Variant型別。因此,使用者不需要在宣告期間提及資料型別。
數值應不帶雙引號賦值。
字串值應放在雙引號(" ")內。
日期和時間變數應放在井號(#)內。
以下是VBScript中變數的作用域:
Dim
Public
Private
在過程級別使用“Dim”關鍵字宣告的變數僅在同一過程中可用。在指令碼級別使用“Dim”關鍵字宣告的變數對同一指令碼中的所有過程都可用。
使用“Public”關鍵字宣告的變數對所有關聯指令碼中的所有過程都可用。宣告“Public”型別的變數時,“Dim”關鍵字將被“Public”替換。
宣告為“Private”的變數的作用域僅限於宣告它們的指令碼。宣告“Private”型別的變數時,“Dim”關鍵字將被“Private”替換。
使用“const”關鍵字宣告常量。
公共常量對所有指令碼和過程都可用。
私有常量在過程或類中可用。
VBScript語言支援以下型別的運算子:
算術運算子
比較運算子
邏輯(或關係)運算子
連線運算子
MOD運算子用於獲取兩個數的模。
示例:
Dim a : a = 5 Dim b : b = 10 Dim c c = b MOD a Document.write ("Modulus Result is " &c)
^運算子用於獲取兩個數的指數。
示例:
Dim a : a = 5 Dim b : b = 10 Dim c c = b ^ a Document.write ("Exponentiation Result is " &c)
<>運算子用於檢查兩個數是否相等。
示例:
Dim a : a = 5 Dim b : b = 10 Dim c c = b <> a Document.write ("Equality Check is " &c)
XOR稱為邏輯異或運算子。它用於進行異或運算。
示例:
A. Dim a : a = 5 Dim b : b = 10 Dim c c = b XOR a Document.write ("XOR Check is " &c)
+運算子將兩個值相加,因為變數值是數值。因此,A + B將得到15。
+運算子如果值是字串,則連線兩個值。因此,A + B將得到VBScript。
&運算子連線兩個值。因此,A & B將得到510。
&運算子連線兩個值。因此,A & B將得到VBScript。
VBScript還可以使用Document物件的cookie屬性來操作cookie。JavaScript可以讀取、建立、修改和刪除應用於當前網頁的cookie。
建立cookie的最簡單方法是將字串值賦給document.cookie物件,如下所示:
語法:
document.cookie = "key1 = value1; key2 = value2; expires = date";
expires屬性是可選的。如果提供此屬性以及有效的日期或時間,則cookie將在給定的日期或時間過期,之後將無法訪問cookie的值。
讀取cookie與寫入cookie一樣簡單,因為document.cookie物件的值就是cookie。因此,您可以隨時使用此字串訪問cookie。
document.cookie字串將保留用分號分隔的名稱=值對列表,其中名稱是cookie的名稱,值是其字串值。
您可以使用字串的split()函式將字串分解為鍵和值。
有時您需要刪除cookie,以便後續嘗試讀取cookie時返回空值。要執行此操作,您只需將過期日期設定為過去的時間。
使用CDbl函式,該函式將任何Variant子型別的給定數字轉換為雙精度數。
示例:
x = 123 y = 123.882 document.write("x value after converting to double - " & CDbl(x) & "<br />")
使用CInt函式,該函式將任何Variant子型別的給定數字轉換為整數。
示例:
x = 123 y = 123.882 document.write("y value after converting to Int - " & CInt(y) & "<br />")
使用CLng函式,該函式將任何Variant子型別的給定數字轉換為長整數。
示例:
x = 123 y = 123.882 document.write("x value after converting to Long -" & CLng(x) & "<br />")
使用CSng函式,該函式將任何Variant子型別的給定數字轉換為單精度數。
示例:
x = 123 y = 123.882 document.write("x value after converting to Single -" & CSng(x) & "<br />")
使用Hex函式,該函式將任何Variant子型別的給定數字轉換為十六進位制。
示例:
x = 123 y = 123.882 document.write("y value after converting to Hex -" & Hex(y) & "<br />")
使用FormatNumber函式,該函式將返回格式化為數字的表示式。
示例:
Dim num : num = -645.998651 document.write(FormatNumber(num, 3))& "<br/>" '-645.999
使用FormatPercent函式,該函式將返回格式化為百分比的表示式。
示例:
Dim num : num = -645.998651 document.write(FormatPercent(num, 2))& "<br/>" '-64,599.86%
使用Int函式,該函式返回給定數字的整數部分。
示例:
Dim num : num = -645.998651 document.write("int Result of num is : " & int(num))& "<br/>" '-646
使用Log函式,該函式返回給定數字的自然對數。
示例:
Dim num : num = 210 document.write("Log Result of num2 is : " & Log(num2))& "<br/>" '5.34710753071747
使用Oct函式,該函式返回給定數字的八進位制值。
示例:
Dim num : num = -645.998651 document.write("Oct Result of num is : " & Oct(num))& "<br/>" '37777776572
使用Hex函式,該函式返回給定數字的十六進位制值。
示例:
Dim num : num = -645.998651 document.write("Hex Result of num is : " & Hex(num))& "<br/>" 'FFFFFD7A
使用Rnd函式,該函式返回0到1之間的隨機數。
示例:
Dim num : num = -645.998651 document.write("Rnd Result of num is : " & Rnd(num))& "<br/>" '0.5130115
使用Sqr函式,該函式返回給定數字的平方根。
示例:
Dim num : num = -210 document.write("Sqr Result of num is : " & Sqr(num))& "<br/>" '14.4913767461894
使用Abs函式,它返回給定數字的絕對值。
示例:
Dim num : num = -645.998651 document.write("Abs Result of num is : " & Abs(num))& "<br/>" '645.998651
使用Exp函式,它返回e的指定次冪的值。
示例:
Dim num : num = -645.998651 document.write("Exp Result of num is : " & Exp(num))& "<br/>" '2.79479883633128E-281
使用InStr函式,它返回一個字串在另一個字串中的第一次出現位置。搜尋從左到右進行。
使用InStrRev函式,它返回一個字串在另一個字串中的最後一次出現位置。搜尋從右到左進行。
使用Lcase函式,它返回指定字串的小寫形式。
使用Ucase函式,它返回指定字串的大寫形式。
使用Ltrim函式,它返回在去除指定字串左側空格後的字串。
使用Rtrim函式,它返回在去除指定字串右側空格後的字串。(原文錯誤,應為右側)
使用Trim函式,它返回在去除開頭和結尾空格後的字串。
使用Len函式,它返回給定字串的長度。
使用Replace函式,它返回在用另一個字串替換一個字串後的字串。
使用Space函式,它用指定數量的空格填充字串。
使用StrComp函式,它在比較兩個指定字串後返回一個整數值。
StrComp函式在比較兩個給定字串後返回一個整數值。根據要比較的輸入字串,它可以返回-1、0或1中的任何一個值。
如果字串1 < 字串2,則StrComp返回-1
如果字串1 = 字串2,則StrComp返回0
如果字串1 > 字串2,則StrComp返回1
使用String函式,它返回一個包含指定字元指定次數的字串。
使用StrReverse函式,它返回反轉給定字串字元順序後的字串。(原文有錯字)
陣列的宣告方式與變數的宣告方式相同,只是陣列變數的宣告使用括號。在下面的示例中,陣列的大小在括號中指定。
示例:
'Method 1 : Using Dim Dim arr1() 'Without Size 'Method 2 : Mentioning the Size Dim arr2(5) 'Declared with size of 5 'Method 3 : using 'Array' Parameter Dim arr3 arr3 = Array("apple","Orange","Grapes")
透過為每個要賦值的值指定陣列索引值來為陣列賦值。
示例:
Dim arr(5) arr(0) = "VBScript" 'String document.write("Value stored in Array index 0 : " & arr(0) & "<br />")
使用ReDim語句,我們可以宣告動態陣列變數並分配或重新分配儲存空間。
使用LBound函式,它返回一個整數,對應於給定陣列的最小下標。
使用UBound函式,它返回一個整數,對應於給定陣列的最大下標。
使用Split函式,它返回一個包含指定數量值的陣列。基於分隔符進行分割。
使用Join函式,它返回一個包含陣列中指定數量子字串的字串。這是Split函式的反向操作。
使用Filter函式,它返回一個基於零的陣列,該陣列包含基於特定篩選條件的字串陣列的子集。
使用IsArray函式,它返回一個布林值,指示輸入變數是否為陣列。
使用Erase函式,它回收陣列變數的已分配記憶體。
在VBScript中定義函式最常見的方法是使用Function關鍵字,後跟唯一的函式名,它可能包含或不包含引數列表以及一個帶有End Function關鍵字的語句,該語句指示函式的結尾。
要在指令碼中的其他位置呼叫函式,只需使用Call關鍵字編寫該函式的名稱。
要從函式返回值,只需將值賦給函式名本身。
可以!函式可以返回多個值,這些值以逗號分隔,作為分配給函式名本身的陣列。
子程式類似於函式,但有一些區別。
子程式不返回值,而函式可能返回也可能不返回值。
子程式可以不使用Call關鍵字呼叫。
子程式始終包含在Sub和End Sub語句中。
如果指定了ByVal,則在呼叫函式或過程時,引數將按值傳遞。
如果指定了ByRef,則在呼叫函式或過程時,引數將按引用傳遞。
我們需要使用Set關鍵字宣告物件並例項化它。
示例:
Dim obj Set obj = CreateObject("Scripting.Dictionary")
為了銷燬物件,我們需要使用Set關鍵字,後跟物件名,並將其指向Nothing。
示例:
Dim obj Set obj = CreateObject("Scripting.Dictionary") Set obj = Nothing
類是用於定義唯一型別的構造。與面向物件程式設計一樣,VBScript 5.0 支援類的建立,它與使用VB編寫COM物件非常相似。
類只是物件的模板,我們例項化物件以訪問它的屬性和方法。類可以包含變數、屬性、方法或事件。
VBScript類包含在Class…End Class中。
'Defining the Class Class classname 'Declare the object name ... End Class ' Instantiation of the Class Set objectname = new classname
類可以包含變數,這些變數可以是私有的或公有的。類中的變數應遵循VBScript命名約定。預設情況下,類中的變數是公有的。這就是為什麼可以在類外部訪問它們的原因。
示例:
Dim var1 , var2. Private var1 , var2. Public var1 , var2.
類屬性,例如Property Let,它處理資料驗證和將新值賦給私有變數的過程。Property Set,它將新的屬性值賦給私有物件變數。
只讀屬性只有Property Get過程,而只寫屬性(很少見)只有Property Let或Property Set過程。
示例:
Class Comp Private modStrType Private OS Public Property Let ComputerType(strType) modStrType = strType End Property Public Property Get ComputerType() ComputerType = modStrType End Property Public Property Set OperatingSystem(oObj) Set OS = oObj End Property Public Property Get OperatingSystem() Set OperatingSystem = OS End Property End Class
方法允許類執行開發人員想要的操作。方法只不過是函式或子程式。
示例:
Class Car Private Model Private Year Public Start() Fuel = 2.45 Pressure = 4.15 End Function End Class
預設情況下,每個類都自動關聯兩個事件。Class_Initialize和Class_Terminate。
每當你基於類例項化物件時,都會觸發Class_Initialize。當物件超出範圍或物件設定為Nothing時,將觸發Class_Terminate事件。
示例:
在下面的示例中,我們將向您解釋VBScript中事件的工作方式。
'Instantation of the Object Set objectname = New classname Private Sub Class_Initialize( ) Initalization code goes here End Sub 'When Object is Set to Nothing Private Sub Class_Terminate( ) Termination code goes here End Sub
此類提供檔案系統物件,可幫助開發人員處理驅動器、資料夾和檔案。
示例:
Dim oFS, drive Set oFS = CreateObject("Scripting.FileSystemObject") Set drive = oFS.GetDrive(oFS.GetDriveName("C:\")) Document.write drive.VolumeName
Drive包含允許您收集有關連線到系統的驅動器的資訊的方法和屬性。
File包含允許開發人員建立、刪除或移動檔案的方法和屬性。
Files提供資料夾中包含的所有檔案的列表。
Folder提供允許開發人員建立、刪除或移動資料夾的方法和屬性。
Folders提供資料夾內所有資料夾的列表。
TextStream使開發人員能夠讀取和寫入文字檔案。
RegExp物件幫助開發人員匹配字串模式,其屬性和方法幫助我們輕鬆地使用正則表示式。
以下是RegExp物件的屬性:
Pattern - Pattern方法表示用於定義正則表示式的字串,在使用正則表示式物件之前應設定它。
IgnoreCase - 一個布林屬性,表示如果為true或false,則正則表示式是否應針對字串中的所有可能匹配項進行測試。如果未明確指定,則IgnoreCase值設定為False。
全域性(Global)− 一個布林屬性,表示正則表示式是否應該測試字串中的所有可能匹配項。如果未顯式指定,則 Global 值設定為 False。
Test 方法以字串作為引數,如果正則表示式可以成功與字串匹配,則返回 True,否則返回 False。
Replace 方法接受 2 個引數。如果搜尋成功,則它將該匹配項替換為替換字串,並返回新的字串。如果沒有匹配項,則返回原始搜尋字串。
Execute 方法的工作方式類似於 Replace,不同之處在於它返回一個 Matches 集合物件,其中包含每個成功匹配項的 Match 物件。它不會修改原始字串。
如果要捕獲錯誤,則使用 Err 物件。
使用 Err.Raise 丟擲錯誤。
示例:
Err.Raise 6 ' Raise an overflow error.
Err.Number 提供錯誤號,Err.Description 提供錯誤描述。
示例:
Err.Raise 6 ' Raise an overflow error. MsgBox "Error # " & CStr(Err.Number) & " " & Err.Description
Err.Clear 清除錯誤。
示例:
Err.Raise 6 ' Raise an overflow error. MsgBox "Error # " & CStr(Err.Number) & " " & Err.Description Err.Clear ' Clear the error.
下一步是什麼?
接下來,您可以回顧一下您之前完成的與該主題相關的作業,並確保您能夠自信地談論它們。如果您是應屆畢業生,面試官並不期望您能回答非常複雜的問題,而是希望您掌握紮實的基礎知識。
其次,如果您無法回答一些問題,這並不重要,重要的是,無論您回答了什麼問題,都必須充滿自信地回答。所以在面試中要保持自信。Tutorialspoint 祝您面試順利,並祝您未來一切順利!乾杯 :-)