在 VBscript 中使用 Empty 与 "" 定义或测试变量

Yev*_*gen 2 vbscript is-empty

将变量声明为空白时(例如在循环之前),有时会将其声明为“”或 Empty。另外,在检查值时,有时会与“(Not IsEmpty(variable))”和“variable <> Empty”一起使用。使用一种与另一种更好吗?以错误的方式使用它会导致任何问题吗?

例1:

  • 文件名日期 = 空
  • 文件名日期 = ""

例2:

  • 如果 (Not IsEmpty(fileNameDate)) 那么
  • 如果 fileNameDate <> 为空,则
  • 如果 fileNameDate <> "" 那么

谢谢!

- - - - - - 更新 - - - - - - -

请注意,我的问题并不是询问 Null、Empty 和 Nothing 之间的区别。我只是关注“空”部分以及它是否与写“”相同。在大多数情况下,我在互换两者时收到了类似的结果,但我不知道这是否只是我使用的示例。例如,以下内容让我有些困惑。

我的代码:

 Dim x, y, z

'Option1 (Do not set x to anything)

'Option2
'x = Empty

'Option3
'x = ""

If x = "" Then
'Action1
End if

If x = Empty Then
'Action2
End if

If IsEmpty(x) Then
'Action3
End if
Run Code Online (Sandbox Code Playgroud)
  • 如果我选择选项 1 并且不定义“x”,则所有三个操作都会发生。
  • 如果我选择 Option2 并设置 x = Empty,所有三个操作也会发生
  • 但如果我选择 Option3 并设置 x = "",则只会发生 Action1 和 Action2。

为什么?

kar*_*son 6

一些注意事项:

fileNameDate = Empty  ' The same as just declaring Dim fileNameDate
IsEmpty(fileNameDate) ' = True
Run Code Online (Sandbox Code Playgroud)

不等于:

fileNameDate = ""
IsEmpty(fileNameDate) ' = False
Run Code Online (Sandbox Code Playgroud)

我认为该函数IsEmpty()命名错误,因为它检查变量是否已初始化,而不是检查变量是否实际上为