VBScript高级:其他语句

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

类别功能名称/声明名称
选件显式期权
脚本引擎ID脚本引擎
变体IsArray,IsEmpty,IsNull,IsNumeric,IsObject,TypeName
表达评估执行
控制声明用…结束用
数学函数随机化

显式期权

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

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函数可以返回以下任何值。

  • Byte-字节值
  • Integer – 整数值
  • Long – 长整数值
  • Single-单精度浮点值
  • Double-双精度浮点值
  • Currency-货币价值
  • Decimal -十进制值
  • Date -日期或时间值
  • String-字符串值
  • Boolean -布尔值
  • Empty-未初始化的值
  • Null -没有有效数据
  • Object -对象的类型名
  • Nothing -尚未引用对象实例的对象变量
  • Error

<!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;否则,结果为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..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

作者:terry,如若转载,请注明出处:https://www.web176.com/vbscript/1093.html

(0)
打赏 支付宝 支付宝 微信 微信
terryterry
上一篇 2020年11月16日 上午11:09
下一篇 2020年12月4日 下午7:07

相关推荐

发表回复

登录后才能评论