ASP IsNULL与IsEmpty与空串


IsNull函数:
功能:返回Boolean的值,指明表达式是否不包含任何有效数据。NULL表示的是数据值未知或不可用,它不表示零(数字值或二进制值)、零长度的字符串或空白(字符值)。
IsEmpty函数:
功能:用于判断一个变量是否已初始化,如果变量未初始化或显式地设置为 Empty,则函数 IsEmpty 返回 True;否则函数返回 False。


以下是代码片段,您可以CTRL+A,然后复制。 Dim var1,var2,var3 var3 = IsEmpty(var1) Response.Write(var3) 
这条语句的输出结果为:True。需要说明的是:Dim var1声明变量,并不是必须的,只要未经过初始化则其值就为Empty。
如上面的例子我们可以写成:


以下是代码片段,您可以CTRL+A,然后复制。 var3 = IsEmpty(var1) Response.Write(var3) 
其输出结果:True
而上面的例子将IsEmpty换成IsNull,则输出为:False。说明即使变量未初始化也属于有效数据,而不属于无效数据(NULL)。


我常常也被这些弄糊涂了,还好我找到了其中的一些规律(只考虑单变量的情况),若有不对之处,还望指出。
何时才能算是无效数据(NULL),看下面例子:


以下是代码片段,您可以CTRL+A,然后复制。 Dim var1,var2,var3 var1 = Null var3 = IsNull(var1) Response.Write(var3) 
输出:True
这个例子说明(使用IsNull的一般场合):
1 对于值为NULL的,其IsNull返回值为True;
2 对于数据库来说,看是否是NULL则更简单,若是NULL数据,则数据库中的数据直接就是个”NULL“。


事实上我们用的最多的还是IsEmpty和零长度字符串,下面我们要重点讲讲这两个的区别(限能力有限,有错的地方还望不吝赐教):


何时才能算是空数据(Empty),这个也不难说:
1 没有初始化值的变量,不管这个变量有没有先使用Dim声明。
2 直接使用 变量 = Empty。


何时算是零长度字符串(空串)?
a = ""
这就是空串,说白了,也还是个字符串,就把他当成字符串理解,零长度字符串并不等同于NULL也不等同于Empty。


知道数据是空串(="")还是空值(=Empty)可就显得十分必要了,或许听名字我们都知道他们的细微区别了,空串怎么说也是字符串,空值的类型就不清楚了,可能是字符串,所以对于一个未赋值的变量,其值等价于:Empty,""(零长度字符串),0(使用Cint转换后),这可以从判断一个Session是否存在的写法中得到验证,前面我也写过一篇判断Session是否存在的四种写法(方法只有3种)。


对于一个表单接收过来的值,如果文本框内容什么都没写,那它的值又是多少呢?是Empty还是空串?
看个简单的例子:
为了能正确判断值类型,我们使用VarType函数:返回指示变量子类型的值。
函数返回下列值:
8 字符串
0 Empty(未初始化)
1 NULL(无有效数据)


下面看个简单例子:


以下是代码片段,您可以CTRL+A,然后复制。 <% If Request.QueryString("smt") <> "" Then txtName = VarType(Request.QueryString("txtName")) Response.Write(txtName) End If %> <form name="test.asp" method="get"> <input type="text" name="txtName" /> <input type="submit" name="smt" value="确定提交" /> </form> 
文本框什么都没写,按下按钮后,返回值是“8”,说明,对于没有填写数据的文本框其值为零长度字符串而不是Empty。


对于判断Session是否存在,看个例子:
以下是代码片段,您可以CTRL+A,然后复制。 <% Response.Write(varType(Session("name"))) %> 
其返回值为:“0”,也就是Empty。那么对于判断是否有Session尽管有多个方法,但其实使用IsEmpty(Session("name"))来判断才是比较合适的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值