预测逻辑表达式的完整赋值

VBScript 编程语言不会绕过布尔条件的赋值。即使表达式无需对所有条件赋值也可判断为 True 或 False,VBScript 仍会对布尔逻辑表达式中的所有条件赋值。例如,在以下示例中,<语句 1> 和 <语句 2> 都会赋值,即使 <语句 1> 解析为 False:

<语句 1> AND <语句 2>

建议

为避免错误,在尝试使用值和对象之前,应检查它们都不是 Null。

以下示例:

  • 演示逻辑表达式的错误与正确用法
  • 考虑到逻辑表达式如何赋值

Example: 不正确的用法

value.Name 即便在其值是 Null 时也会赋值。这会导致错误。

Sub namecheck(value) 
        If Not IsNull(value) And value.Name = "aName" Then 
            ' ... 
          End If
End Sub

Example: 正确的用法

在以下条件下代码是正确的:Value 是包含 Name 属性的对象。代码可运行且没有错误。

Sub namecheck(value) 
    If Not IsNull(value) And Not IsEmpty(value) Then 
         If value.Name = "aName" Then
            ' ... 
        End If
      End If
End Sub