2011-04-05 103 views
0

我正在使用Yahoo用戶界面API。如果我有以下幾點:檢查JavaScript空值

var field = yuiDom.get('dobfield'); 

是否需要檢查類似:

if (field == null) 

我是一個.NET開發人員,每當我試圖去上一個控件的引用我的網頁,然後我總是檢查空值。我檢查了YUI的例子,並且廣泛地使用了對控件的引用,但是我不知道它們是否檢查是否有引用。

回答

3

您可能會看到這一點:

if(field) 

if(!field) 

從本質上講,這些意味着,如果爲空,如果不爲空。然而,它們相當於

if (field == null) 

if (field != null) 
0

如果您要引用您創建並知道將在那裏的控制,我不認爲這是必要的檢查空。

0

在JavaScript null值很少被使用,而且你不會有null值,除非你明確地定義它,而不是有非引用的對象undefined價值,併爲科裏Sunwold說,你可能會看到這一點:

if(obj) { 
    alert(true); // obj could be (object, not empty string, not null, a not zero number) 
} else { 
    alert(false); // obj could be (undefined, null, '', 0) 
} 

以前的方法不適用於空對象和空數組,您可以使用jquery isEmptyObject方法代替這種情況。

+0

你的if與Corey的if不相似。如果應該檢查undefined/null,你不是第一個嗎?你有沒有反過來呢? – 2011-04-05 06:11:45

+0

是的,它會檢查未定義,空,零和空字符串 – 2011-04-05 08:03:13

1

在YUI 2,你可以這樣做:

var lang = YAHOO.util.Lang;  
var ctl = YAHOO.util.Dom.get("dobfield"); 

if (lang.isNull(ctl)) { 
    alert("Control is null"); 
} else { 
    alert("found control"); 
} 

YAHOO.util.Lang是全球YAHOO對象的一部分,它還包含了許多有用的跨瀏覽器的功能,如參考isNull。由於您使用的是YAHOO.util.Dom,因此您默認使用Lang。