VBScript 杂项语句


VBScript 还有一些其他重要的语句可以帮助开发人员开发高效的脚本。下表列出了一组此类重要的语句。在本章中,我们将通过示例详细讨论这些陈述。

类别 函数名称/语句名称
选项 选项显式
脚本引擎ID 脚本引擎
变体 IsArray、IsEmpty、IsNull、IsNumeric、IsObject、类型名称
表达 评估、执行
控制语句 与...结束于
数学函数 随机化

选项显式

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代表正在使用的脚本语言的详细信息。它还与ScriptEngineMajorVersion、ScriptEngineMinor Version、ScriptEngineBuildVersion结合使用,分别给出 vbscript 引擎的主要版本、vbscript 引擎的次要版本和 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>

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

Version VBScript - 5.8.16996 

是空的

函数 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>

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

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

一片空白

函数 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>

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

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

是对象

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>

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

Line 1 : True
Line 2 : False

是数字

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>

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

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

类型名称

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

句法

TypeName(varname)

Typename 函数可以返回以下任何值。

  • 字节 - 字节值

  • 整数 - 整数值

  • Long - 长整型值

  • Single - 单精度浮点值

  • Double - 双精度浮点值

  • 货币 - 货币价值

  • 小数 - 小数值

  • 日期 - 日期或时间值

  • String - 字符串值

  • 布尔值 - 布尔值

  • 空 - 未初始化值

  • Null - 无有效数据

  • 对象 - 对象的类型名

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

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

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

评估

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>

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

20
false
15

执行

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>

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

VBScript
VBScript

与..结束于

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