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 引擎的主要版本、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>
以.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>
在 IE 中执行脚本后,以 .html 扩展名保存文件,屏幕上会显示以下结果。
Line 1 : True Line 2 : True Line 3 : False
TypeName
TypeName函数用于返回变量的变体子类型信息。
语法
TypeName(varname)
Typename 函数可以返回以下任意值。
Byte − Byte Value
Integer − Integer Value
Long − Long Integer Value
Single − Single-precision floating-point Value
Double − Double-precision floating-point Value
Currency − Currency Value
Decimal − Decimal Value
Date − Date or Time Value
String − Character string Value
Boolean − Boolean Value
Empty − Uninitialized Value
Null − No Valid Data
Object − typename of Object
Nothing − Object variable that doesn't yet refer to an object instance
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>
以.html为扩展名保存文件,在IE中执行脚本后,屏幕上会显示以下结果。
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>
以.html为扩展名保存文件,在IE中执行脚本后,屏幕上会显示以下结果。
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>
以.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

