作为弱类型语言(loosely typed language),Variant是VBScript中唯一的数据类型,我们通过Variant的“子类型”来管理变量。记录一下两个比较特殊的子类型:Empty和Null。
与其他子类型的区别
当变量的子类型为Empty或Null时,它的值也就是名为Empty或Null的特殊值,这跟其他的子类型有些不同,其他的子类型只是说明变量中值得类型,而不是值本身。
Empty子类型
1. Empty等价于“未初始化”,当一个Variant变量被声明后,在往其中放入任何值之前,它就是空的,其子类型是Empty。
1: Dim varTest
2: MsgBox TypeName(varTest)
Null子类型
1. Null表示变量中没有合适的值,只有明确地将Null放到变量中,变量才会是Null子类型。Null是个特殊的值,常见于数据库表格中。"null"这个概念反映的不仅仅是缺少值,也意味着当前值是未知的。
2. 将Null值赋给变量:
1: varTest = Null
3. 如何检查变量是否为Null:
1: If IsNull(varTest) Then
2: MsgBox "The variable has a Null value."
3: End If
4. 通常从数据库或某些函数获取数据时,要注意Null值。因为Null表示非法的数据,如果您将Null传递给不兼容Null的函数或是用Null做数学计算,那它就会给您带来麻烦。
以下代码会出错是因为将Null作为了CLng函数的参数:
1: Dim varTest
2: varTest = Null
3: varTest = CLng(varTest)
此例子会在第三行出错,提示"Invalid Use of Null"。
5. 将无效数据(Null)与有效数据混在一起时,您最终得到的永远是无效数据。
1: Dim varTest
2: Dim lngTest
3: varTest = Null
4: lngTest = 2 + varTest
5: MsgBox TypeName(lngTest)
此例子结果为Null。