一個是對象為空(IsNull),一個是值為空(IsEmpty)
IsNull指任務類型變量是否為空包括對象類型的變量。
IsNull函數:
功能:返回Boolean的值,指明表達是否不包含任何有效數據。NULL表示的是數據值未知或不可用,它不表示零(數字值或二進制值)、零長度的字符串或空白(字符值)。
IsEmpty函數:
功能:用於判斷一個變量是否已初始化,如果變量未初始化或顯式地設置為Empty,則函數IsEmpty返回True;否則函數返回False。
IsNull的一般場合:
1.對於值為NULL的,其IsNull返回為True;
2.對於數據庫來說,看是否是NULL則更簡單,若是NULL數據,則數據庫中的數據直接就是個“NULL”.
事實上我們用的最多的還是IsEmpty和零長度字符串,下面我們要重點講講這兩個的區別(限能力有限,有錯的地方還望不吝賜教):
何時才能算是空數據(Empty),這個也不難說:
1 沒有初始化值的變量,不管這個變量有沒有先使用Dim聲明。
2 直接使用 變量 = Empty。
何時算是零長度字符串(空串)?
a = ""
這就是空串,說白了,也還是個字符串,就把他當成字符串理解,零長度字符串並不等同於NULL也不等同於Empty。知道數據是空串(="")還是空值(=Empty)可就顯得十分必要了,或許聽名字我們都知道他們的細微區別了,空串怎么說也是字符串,空值的類型就不清楚了,可能是字符串,所以對於一個未賦值的變量,其值等價於:Empty,""(零長度字符串),0(使用Cint轉換后),這可以從判斷一個Session是否存在的寫法中得到驗證。
對於一個表單接收過來的值,如果文本框內容什么都沒寫,那它的值又是多少呢?是Empty還是空串?
看個簡單的例子:
為了能正確判斷值類型,我們使用VarType函數:返回指示變量子類型的值。
函數返回下列值:
8 字符串
0 Empty(未初始化)
1 NULL(無有效數據)
下面看個簡單例子:
以下是代碼片段:
<% 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"))來判斷才是比較合適的。
