asp中isNull、isEmpty和空字符串的区别
ASP中我们经常会用到两个参数就是isNull和isEmpty 在我们判断某个字符串为空的时候使用 比如某个字符串是str 经常我们用if isNull(str ) or isEmpty(str ) then来判断 或者使用if str ="" then来判断字符串是否为空
有时候我们非常纠结 isNull isEmpty和""空字符串到底有什么区别呢?
isNull()
Null 值指出变量不包含有效数据 Null 与 Empty 不同 后者指出变量未经初始化 Null 与零长度字符串 ("") 也不同 零长度字符串往往指的是空串
重点 使用 IsNull 函数可以判断表达式是否包含 Null 值 在某些情况下想使表达式取值为 True 例如 IfVar=Null 和 IfVar<>Null 但它们通常总是为 False 这是因为任何包含 Null 的表达式本身就为 Null 所以表达式的结果为 False
实例
代码如下 dim x document write(IsNull(x) & "<br />")x= document write(IsNull(x) & "<br />")x=Empty document write(IsNull(x) & "<br />")x=Null document write(IsNull(x)) 输出: False False False True下面的示例利用 IsNull 函数决定变量是否包含 Null
代码如下Dim MyVar MyCheck MyCheck = IsNull(MyVar) 返回 False MyVar = Null 赋为 Null MyCheck = IsNull(MyVar) 返回 True MyVar = Empty 赋为 Empty MyCheck = IsNull(MyVar) 返回 False
isEmpty()
如果变量未初始化或显式地设置为 Empty 则函数 IsEmpty 返回 True 否则函数返回 False 如果 exPRession 包含一个以上的变量 总返回 False
下面的示例利用 IsEmpty 函数决定变量是否能被初始化
代码如下Dim MyVar MyCheck MyCheck = IsEmpty(MyVar) 返回 True MyVar = Null 赋为 Null MyCheck = IsEmpty(MyVar) 返回 False MyVar = Empty 赋为 Empty MyCheck = IsEmpty(MyVar) 返回 True
零长度字符串 ("") 零长度字符串往往指的是空串 str="" 将空字符串赋给str变量 已经赋值了 且赋的是字符
三者的区别就是 isnull是一种类型测试 测试是否为空值(null)类型 isEmpty是一种值测试 测试是否是空值 但这个不同语言中采用的方法不同 =""是串测试 测试值是否为空值
说一个isEmpty吧 在有些语言中isEmpty是一种空值测试 它可以测试以下内容
代码如下dim str as string isEmpty(str)=True
str = "" isEmpty(str)=True
str = null isEmpty(str)=True
dim str as integer str = isEmpty(str) = True
也就是部分语言中把数据中的 字符中的空串 NULL值都作为空值的测试范畴
但在C#等语言中的要求比较严格 VB中要求也不是很严格的 这里只要了解一个特殊的类型null类型 它的类当然也是null 同时有些语言上还有一种未定义型 undefined类型 如在C#中 string str ; 则string只有这一个的定义 所以它的值还没有真正被定义 此时它就是undefined类型的 这种类型常存在于C族语言和类C族如ECMAScript族(javascript等)及Java中!
lishixinzhi/Article/program/net/201311/14453