有時候我們非常糾結,isNull、isEmpty和""Null 字元串到底有什麼區別呢?
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="",將Null 字元串賦給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記錄將破壞表格的結構,即表格中的格線將消失,很多人在可能出現這種情況時,會在資料庫中設預設值或在處理時給此記錄賦一個空串。