萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> asp編程 >> asp中isNull、isEmpty和空字符串的區別

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記錄將破壞表格的結構,即表格中的格線將消失,很多人在可能出現這種情況時,會在數據庫中設默認值或在處理時給此記錄賦一個空串。

copyright © 萬盛學電腦網 all rights reserved