我有下面的語句:Javascript!=不能轉換爲null?
if(typeof prop != 'null') {
}
我的印象是,如果道具是null
,該!=
運營商將空對象轉換爲字符串「空」作比較?
在上述情況下,當支持爲空時,表達式評估爲true
。爲什麼這個成語爲未定義的工作?是不是未定義的對象?就像null是一個對象一樣?
我有下面的語句:Javascript!=不能轉換爲null?
if(typeof prop != 'null') {
}
我的印象是,如果道具是null
,該!=
運營商將空對象轉換爲字符串「空」作比較?
在上述情況下,當支持爲空時,表達式評估爲true
。爲什麼這個成語爲未定義的工作?是不是未定義的對象?就像null是一個對象一樣?
空對象的類型仍然是「對象」。如果你警告(typeof道具),你會發現它是一個對象。
你想檢查一個空值。
if(prop == null) {
alert(typeof prop);
}
賈森迪恩 - 你確實是對的 - 這是使用'typeof',這使我感到困惑。 – wulfgarpro
運行'typeof(null)'返回_object_,而'typeof(undefined)'返回_undefined_。 – wulfgarpro
對我有意義。未定義的引用不能有一個類型,它是未定義的。但是具有空值的對象仍然是一個對象。 –
使用Firebug或DOM insperctor看到什麼的typeof道具
console.log(typeof prop);
,也許你可以試試這個太
if(prop != null) {
}
或
if(typeof prop != undefined) {
}
取決於你想什麼要做/
我相信,你只需要刪除從「空」
你是比較對字符串「零」,而不是'null'對象的報價,所以它是'真'是'(空!='null')'。 –
@Cory Larson - 當然,我認爲它可能更像'if(「1」== 1)// true' – wulfgarpro
你可以通過數字和空字符串來獲得更多的行爲。你應該在JavaScript中研究「真理」和「虛假」的比較。 –