asp中isNull、isEmpty和空字符串的区别

 ASP中我们经常会用到两个参数就是isNull和isEmpty,在我们判断某个字符串为空的时候使用。比如某个字符串是str1,经常我们用if isNull(str1) or isEmpty(str1) then来判断,或者使用if str1="" then来判断字符串是否为空。

 

有时候我们非常纠结,isNull、isEmpty和""空字符串到底有什么区别呢?

isNull()

Null 值指出变量不包含有效数据。Null 与 Empty 不同,后者指出变量未经初始化。Null 与零长度字符串 ("") 也不同,零长度字符串往往指的是空串。

重点 使用 IsNull 函数可以判断表达式是否包含 Null 值。在某些情况下想使表达式取值为 True,例如 IfVar=Null 和 IfVar<>Null,但它们通常总是为 False。这是因为任何包含 Null 的表达式本身就为 Null,所以表达式的结果为 False。

实例 1

 代码如下  
dim x
document.write(IsNull(x) & "<br />")x=10
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。

3。零长度字符串 ("") 
零长度字符串往往指的是空串。
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 = 0 
isEmpty(str) = True

也就是部分语言中把数据中的0,字符中的空串,NULL值都作为空值的测试范畴。

但在C#等语言中的要求比较严格,VB中要求也不是很严格的。这里只要了解一个特殊的类型null类型,它的类当然也是null。同时有些语言上还有一种未定义型: 
undefined类型,如在C#中: 
string str ; 
则string只有这一个的定义,所以它的值还没有真正被定义,此时它就是undefined类型的。这种类型常存在于C族语言和类C族如ECMAScript族(javascript等)及Java中!

补充:在数据库设计中可以规定某字段为null,这样如果不再给他赋值时,此记录即为null,但是在表格输出时,null记录将破坏表格的结构,即表格中的格线将消失,很多人在可能出现这种情况时,会在数据库中设默认值或在处理时给此记录赋一个空串。

时间: 2024-10-31 07:06:12

asp中isNull、isEmpty和空字符串的区别的相关文章

java对象中属性值为空字符串的问题

问题描述 java对象中属性值为空字符串的问题 业务逻辑中需要将对象中为空字符串的属性转换为null,首先我想到是将对象转为一个数组, 然后遍历数组,将""转为 null ,不过这样应该不对,大家给个思路 解决方案 用 反射 获得所有字段的数组,然后遍历判断~~~~~~ 解决方案二: 你为什么还要遍历呢,你前台传过来的数据先处理再装对象,这样才对 解决方案三: 传到后台后,先判断 if("".eques(name)){ name=null; } object.set

Oracle数据库中对null值的排序及mull与空字符串的区别_oracle

order by排序之null值处理方法在对业务数据排序时候,发现有些字段的记录是null值,这时排序便出现了有违我们使用习惯的数据大小顺序问题.在Oracle中规定,在Order by排序时缺省认为null是最大值,所以如果是ASC升序则被排在最后,而DESC降序则排在最前.所以,为何分析数据的直观性方便性,我们需要对null的记录值进行相应处理. 这是四种oracle排序中NULL值处理的方法:1.使用nvl函数语法:Nvl(expr1, expr2)     若EXPR1是NULL,則返回

ASP中Null,Empty,Nothing的区别分析_应用技巧

本文介绍在ASP中,NULL,Empty,Nothing这几种空值的来源和判断方法. Dim   A   Dim   B   As   String   Dim   C   As   Integer   Dim   D   As   Object   A  等于 Empty,因为尚未初始化的「不定型变量」都等于 Empty.但如果检测 A = "" 或 A = 0,也都可以得到True 值.   B  等于   "", 因为尚未初始化的非固定长度「字串」都等于 &q

ASP中Null,Empty,Nothing的区别分析

本文介绍在ASP中,NULL,Empty,Nothing这几种空值的来源和判断方法. Dim   A   Dim   B   As   String   Dim   C   As   Integer   Dim   D   As   Object A  等于 Empty,因为尚未初始化的「不定型变量」都等于 Empty.但如果检测 A = "" 或 A = 0,也都可以得到True 值.   B  等于   "", 因为尚未初始化的非固定长度「字串」都等于 &quo

asp中过程、函数的相似与区别

在VBscript中,过程与函数都是指一组能执行特定功能的代码块,当我们定义了自己的过程或函数后,就可以在脚本中反复调用它们,对于自定义的过程或函数还可以放在外部的文件夹中,使用#include指令调用它们.         在VBscript中,过程与函数都是指一组能执行特定功能的代码块,当我们定义了自己的过程或函数后,就可以在脚本中反复调用它们,对于自定义的过程或函数还可以放在外部的文件夹中,使用#include指令调用它们. 一.定义:       定义过程格式:      Sub 过程名

ASP 空字符串、IsNull、IsEmpty区别分析_应用技巧

说明:set aa=server.createobject("ddd") isnull 说明指针为空,指针指到一个无效的位置,即对象不存在, isempty 说明指针指向一个有效位置,但是值为空 1.空字符串 例: 复制代码 代码如下: a)Dim strTmp response.write(strTmp="") ' 返回true b)response.write(str="") ' 返回 true c)Dim strTmp strTmp=&qu

ASP 空字符串、IsNull、IsEmpty区别分析

说明:set aa=server.createobject("ddd") isnull 说明指针为空,指针指到一个无效的位置,即对象不存在, isempty 说明指针指向一个有效位置,但是值为空 1.空字符串 例: 复制代码 代码如下: a)Dim strTmp response.write(strTmp="") ' 返回true b)response.write(str="") ' 返回 true c)Dim strTmp strTmp=&qu

ASP中Split分割字符串函数的实例用法_ASP基础

ASP中Split函数的用法 分割截取字符串看几个例子就能理解了 复制代码 代码如下: mystr="1,2,3,4,5" mystr=split(mystr,",") for i=0 to ubound(mystr) response.write mystr(i) next  '返回值为123456 mystr="xlei.net/http/student/x/index.asp" mystr=split(mystr,"/http/s

ASP中Split分割字符串函数的实例用法

ASP中Split函数的用法 分割截取字符串看几个例子就能理解了 复制代码 代码如下:mystr="1,2,3,4,5" mystr=split(mystr,",") for i=0 to ubound(mystr) response.write mystr(i) next  '返回值为123456 mystr="xlei.net/http/student/x/index.asp" mystr=split(mystr,"/http/st