2011-10-07 92 views
0

我有下面的語句:Javascript!=不能轉換爲null?

if(typeof prop != 'null') { 
} 

我的印象是,如果道具null,該!=運營商將空對象轉換爲字符串「空」作比較?

在上述情況下,當支持爲空時,表達式評估爲true。爲什麼這個成語爲未定義的工作?是不是未定義的對象?就像null是一個對象一樣?

+0

你是比較對字符串「零」,而不是'null'對象的報價,所以它是'真'是'(空!='null')'。 –

+0

@Cory Larson - 當然,我認爲它可能更像'if(「1」== 1)// true' – wulfgarpro

+1

你可以通過數字和空字符串來獲得更多的行爲。你應該在JavaScript中研究「真理」和「虛假」的比較。 –

回答

3

空對象的類型仍然是「對象」。如果你警告(ty​​peof道具),你會發現它是一個對象。

你想檢查一個空值。

if(prop == null) { 
    alert(typeof prop); 
} 
+0

賈森迪恩 - 你確實是對的 - 這是使用'typeof',這使我感到困惑。 – wulfgarpro

+0

運行'typeof(null)'返回_object_,而'typeof(undefined)'返回_undefined_。 – wulfgarpro

+0

對我有意義。未定義的引用不能有一個類型,它是未定義的。但是具有空值的對象仍然是一個對象。 –

0

使用Firebug或DOM insperctor看到什麼的typeof道具

console.log(typeof prop); 

,也許你可以試試這個太

if(prop != null) { 

} 

if(typeof prop != undefined) { 
} 

取決於你想什麼要做/

0

我相信,你只需要刪除從「空」

相關問題