VBScript還有一些其他重要的語句來幫助開發人員開發高效的腳本。下表列出了一組這樣重要的語句。在本章中,我們將通過示例詳細討論每一個語句。
Category | Function Name/Statement Name |
---|---|
Options | Option Explicit |
Script Engine ID | ScriptEngine |
variants | IsArray, IsEmpty, IsNull, IsNumeric, IsObject, TypeName |
Expression | Eval,Execute |
Control Statement | With...End With |
Math Function | Randomize |
Option Explicit
Option Explicit強制開發人員在變量用於代碼的某些部分之前使用Dim語句聲明變量。
Syntax
Option Explicit
Example
如果我們使用選項Explicit並且如果我們不聲明變量,那麼解釋器將拋出並出錯。
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Option Explicit Dim x,y,z,a x = 10 y = 20 z = fnadd(x,y) a = fnmultiply(x,y) Function fnadd(x,y) fnadd = x+y End Function </script> </body> </html>
ScriptEngine
ScriptEngine表示正在使用的腳本語言的詳細信息。它還與ScriptEngineMajorVersion、ScriptEngineMinor Version、ScriptEngineBuildVersion結合使用,後者分別給出vbscript引擎的主版本、vbscript引擎的次版本和vbscript的生成版本。
Syntax
ScriptEngine
Example
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Dim scriptdetails scriptdetails = " Version " & ScriptEngine & " - " 'For getting Major version, use ScriptEngineMajorVersion' scriptdetails = scriptdetails & ScriptEngineMajorVersion & "." 'For getting Minor version, use ScriptEngineMinorVersion' scriptdetails = scriptdetails & ScriptEngineMinorVersion & "." 'For getting Build version, use ScriptEngineBuildVersion' scriptdetails = scriptdetails & ScriptEngineBuildVersion Document.write scriptdetails </script> </body> </html>
在IE中執行腳本時,以.html擴展名保存文件,螢幕上將顯示以下結果。
Version VBScript - 5.8.16996
IsEmpty
函數IsEmpty用於檢查表達式是否爲空。它返回一個布爾值。如果變量未初始化或顯式設置爲空,則is Empty返回True。否則,表達式返回False。
Syntax
IsEmpty(expression)
Example
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Dim var, MyCheck MyCheck = IsEmpty(var) Document.write "Line 1 : " & MyCheck & "<br />" var = Null ' Assign Null. MyCheck = IsEmpty(var) Document.write "Line 2 : " & MyCheck & "<br />" var = Empty ' Assign Empty. MyCheck = IsEmpty(var) Document.write "Line 3 : " & MyCheck & "<br />" </script> </body> </html>
在IE中執行腳本時,以.html擴展名保存文件,螢幕上將顯示以下結果。
Line 1 : True Line 2 : False Line 3 : True
IsNull
函數IsNull用於檢查表達式是否具有有效數據。它返回一個布爾值。如果變量爲空,則is Null返回True,否則表達式返回False。
Syntax
IsNull(expression)
Example
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Dim var, res res = IsNull(var) document.write "Line 1 : " & res & "<br />" var = Null res = IsNull(var) document.write "Line 2 : " & res & "<br />" var = Empty res = IsNull(var) document.write "Line 3 : " & res & "<br />" </script> </body> </html>
在IE中執行腳本時,以.html擴展名保存文件,螢幕上將顯示以下結果。
Line 1 : False Line 2 : True Line 3 : False
IsObject
IsObject函數用於檢查表達式是否具有有效的對象。它返回一個布爾值。如果表達式包含對象子類型,則IsObject返回True,否則表達式返回False。
Syntax
IsObject(expression)
Example
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Dim fso,b b = 10 set fso = createobject("Scripting.Filesystemobject") x = isobject(fso) Document.write "Line 1 : " & x & "<br />" y = isobject(b) Document.write "Line 2 : " & y & "<br />" </script> </body> </html>
在IE中執行腳本時,以.html擴展名保存文件,螢幕上將顯示以下結果。
Line 1 : True Line 2 : False
IsNumeric
IsNumeric函數用於檢查表達式是否具有數字子類型。它返回一個布爾值。如果表達式包含數字子類型,則IsObject返回True,否則表達式返回False。
Syntax
IsNumeric(expression)
Example
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Dim var, chk var = 20 chk = IsNumeric(var) Document.write "Line 1 : " & chk & "<br />" var = "3.1415935745" chk = IsNumeric(var) Document.write "Line 2 : " & chk & "<br / >" var = "20 Chapter 23.123 VBScript" chk = IsNumeric(var) Document.write "Line 3 : " & chk & "<br / >" </script> </body> </html>
在IE中執行腳本時,以.html擴展名保存文件,螢幕上將顯示以下結果。
Line 1 : True Line 2 : True Line 3 : False
TypeName
TypeName函數用於返回變量的變量子類型信息。
Syntax
TypeName(varname)
Typename函數可以返回以下任何值。
字節值
整型值
長整型值
單精度浮點值
雙精度浮點值
貨幣價值
十進位值
日期或時間值
字符串值
布爾值
空的未初始化值
無有效數據
對象的類型名
沒有尚未引用對象實例的對象變量
錯誤
Example
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Dim ArrVar(2), vartype NullVar = Null ' Assign Null value. vartype = TypeName(3.1450) Document.write "Line 1 : " & vartype & "<br />" vartype = TypeName(432) Document.write "Line 2 : " & vartype & "<br />" vartype = TypeName("Microsoft") Document.write "Line 3 : " & vartype & "<br />" vartype = TypeName(NullVar) Document.write "Line 4 : " & vartype & "< br />" vartype = TypeName(ArrVar) Document.write "Line 5 : " & vartype & "<br />" </script> </body> </html>
在IE中執行腳本時,以.html擴展名保存文件,螢幕上將顯示以下結果。
Line 1 : Double Line 2 : Integer Line 3 : String Line 4 : Null Line 5 : Variant()
Eval
Eval函數執行表達式並以字符串或數字形式返回結果。
Syntax
Eval(expression)
參數表達式可以是字符串表達式或數字。如果向Eval函數傳遞一個不包含數值表達式或函數名但僅包含簡單文本字符串的字符串,則會發生運行時錯誤。例如,Eval(「VBScript」)會導致錯誤。
Example
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Document.write Eval("10 + 10") & "<br />" Document.write Eval("101 = 200") & "<br />" Document.write Eval("5 * 3") & "<br />" </script> </body> </html>
在IE中執行腳本時,以.html擴展名保存文件,螢幕上將顯示以下結果。
20 false 15
Execute
Execute語句接受參數,該參數是一個字符串表達式,包含一個或多個要執行的語句。
Syntax
Execute(expression)
在VBScript中,a=b可以通過兩種方式解釋。它可以被視爲一個賦值語句,其中x的值被賦值給y。它也可以被解釋爲一個表達式,用於測試a和b是否具有相同的值。如果是,結果是真的;如果不是,結果是假的。Execute語句總是使用第一個解釋,Eval語句總是使用第二個解釋。
Example
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Dim x x = "Global" y = "VBScript" Execute("x = y") msgbox x msgbox y </script> </body> </html>
在IE中執行腳本時,以.html擴展名保存文件,螢幕上將顯示以下結果。
VBScript VBScript
With..End With
With語句允許我們對指定的對象執行一系列操作,而不必一遍又一遍地顯式地提到對象名。
Syntax
With (objectname) statement 1 statement 2 statement 3 ... ... statement n End With
Example
執行以下腳本時,將打開Winword並輸入指定的文本。
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Msg = "Vbscript" & vbCrLf & "Programming" Set objWord = CreateObject("Word.Application") objWord.Visible = True ' Objects methods are accessed without requaliyfying the objects again.' With objWord .Documents.Add .Selection.TypeText Msg .Selection.WholeStory End With </script> </body> </html>
Randomize
Randomize語句初始化隨機數生成器,這有助於開發人員生成隨機數。
Syntax
Randomize [number]
Example
執行以下腳本時,將打開Winword並輸入指定的文本。
<!DOCTYPE html> <html> <body> <script language = "vbscript" type = "text/vbscript"> Dim MyValue Randomize MyValue = Int((100 * Rnd) + 1) ' Generate random value between 1 and 100. MsgBox MyValue </script> </body> </html>
將上述腳本保存爲HTML,在IE中執行腳本時,將顯示以下輸出。