VBScript 杂项语句



VBScript 还有一些其他重要的语句,可以帮助开发人员开发高效的脚本。下表列出了一些这样的重要语句。本章将详细讨论这些语句并举例说明。

类别 函数名称/语句名称
选项 Option Explicit
脚本引擎 ID ScriptEngine
变体 IsArray, IsEmpty, IsNull, IsNumeric, IsObject, TypeName
表达式 Eval, Execute
控制语句 With...End With
数学函数 Randomize

Option Explicit

Option Explicit 强制开发人员在代码的某些部分使用Dim语句声明变量。

语法

Option Explicit

示例

如果我们使用Option 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 引擎的主版本、次版本和内部版本。

语法

ScriptEngine 

示例

<!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>

将文件保存为 .html 扩展名,在 IE 中执行脚本后,屏幕上将显示以下结果。

Version VBScript - 5.8.16996 

IsEmpty

IsEmpty 函数用于检查表达式是否为空。它返回一个布尔值。如果变量未初始化或显式设置为 Empty,则IsEmpty 返回 True。否则,表达式返回 False。

语法

IsEmpty(expression) 

示例

<!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>

将文件保存为 .html 扩展名,在 IE 中执行脚本后,屏幕上将显示以下结果。

Line 1 : True
Line 2 : False
Line 3 : True

IsNull

IsNull 函数用于检查表达式是否具有有效数据。它返回一个布尔值。如果变量为 Null,则IsNull 返回 True;否则,表达式返回 False。

语法

IsNull(expression) 

示例

<!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>

将文件保存为 .html 扩展名,在 IE 中执行脚本后,屏幕上将显示以下结果。

Line 1 : False
Line 2 : True
Line 3 : False

IsObject

IsObject 函数用于检查表达式是否具有有效的对象。它返回一个布尔值。如果表达式包含对象子类型,则IsObject 返回 True;否则,表达式返回 False。

语法

IsObject(expression)

示例

<!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>

将文件保存为 .html 扩展名,在 IE 中执行脚本后,屏幕上将显示以下结果。

Line 1 : True
Line 2 : False

IsNumeric

IsNumeric 函数用于检查表达式是否具有数字子类型。它返回一个布尔值。如果表达式包含数字子类型,则IsObject 返回 True;否则,表达式返回 False。

语法

IsNumeric(expression)

示例

<!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>

将文件保存为 .html 扩展名,在 IE 中执行脚本后,屏幕上将显示以下结果。

Line 1 : True
Line 2 : True
Line 3 : False

TypeName

TypeName 函数用于返回变量的变体子类型信息。

语法

TypeName(varname)

TypeName 函数可以返回以下任何值:

  • Byte - 字节值

  • Integer - 整数值

  • Long - 长整数值

  • Single - 单精度浮点值

  • Double - 双精度浮点值

  • Currency - 货币值

  • Decimal - 十进制值

  • Date - 日期或时间值

  • String - 字符串值

  • Boolean - 布尔值

  • Empty - 未初始化的值

  • Null - 无效数据

  • Object - 对象的类型名称

  • Nothing - 尚未引用对象实例的对象变量

  • 错误

示例

<!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>

将文件保存为 .html 扩展名,在 IE 中执行脚本后,屏幕上将显示以下结果。

Line 1 : Double
Line 2 : Integer
Line 3 : String
Line 4 : Null
Line 5 : Variant()

Eval

Eval 函数执行表达式并将其结果作为字符串或数字返回。

语法

Eval(expression)

参数 Expression 可以是字符串表达式或数字。如果将不包含数字表达式或函数名称,而只包含简单文本字符串的字符串传递给 Eval 函数,则会发生运行时错误。例如,Eval("VBScript") 会导致错误。

示例

<!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>

将文件保存为 .html 扩展名,在 IE 中执行脚本后,屏幕上将显示以下结果。

20
false
15

Execute

Execute 语句接受一个参数,该参数是一个字符串表达式,其中包含一个或多个要执行的语句。

语法

Execute(expression)

在 VBScript 中,a = b 可以解释为两种方式。它可以被视为赋值语句,其中 x 的值被赋值给 y。它也可以被解释为一个表达式,用于测试 a 和 b 是否具有相同的值。如果相同,则结果为 True;如果不相同,则结果为 False。Execute 语句始终使用第一种解释,而 Eval 语句始终使用第二种解释。

示例

<!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>

将文件保存为 .html 扩展名,在 IE 中执行脚本后,屏幕上将显示以下结果。

VBScript
VBScript

With..End With

With 语句允许我们对指定的对象执行一系列操作,而无需反复明确提及对象名称。

语法

With (objectname)
   statement 1
   statement 2
   statement 3
   ...
   ...
   statement n
End With

示例

执行以下脚本后,将打开 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 语句初始化随机数生成器,这有助于开发人员生成随机数。

语法

Randomize [number]

示例

执行以下脚本后,将打开 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 中执行脚本后,将显示以下输出。

42
广告