VBScript Miscellaneous Statements

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

Script Engine ID
类别函数名称/语句名称
选项选项明确
ScriptEngine
variantsIsArray,IsEmpty,IsNull,IsNumeric,IsObject,TypeName
表达式Eval,执行
控制语句使用...结束
数学函数随机化

期权明确

期权防爆plicit 强制开发人员在代码的某些部分使用之前使用 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引擎的主要版本,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

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

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

语法

IsNull(表达式)

示例

<!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函数用于检查表达式是否具有有效的Object.它返回一个布尔值.如果表达式包含对象子类型,则 IsObject 返回True,否则表达式返回False.

语法

IsObject(表达式)

示例

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

语法

IsNumeric(表达式)

示例

<!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函数用于返回变量的变量子类型信息.

语法

TypeName(varname)

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

  • Byte : 字节值

  • 整数:整数值

  • Long :长整数值

  • Single :单精度浮点值

  • Double : 双精度浮点值

  • 货币:货币值

  • 十进制:十进制值

  • Date:日期或时间价值

  • 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函数执行一个表达式并以字符串或数字的形式返回结果.

语法

Eval(表达式)

参数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是否具有相同值的表达式.如果他们这样做,结果是真的;如果不是,结果是假的. 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..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 [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