在JavaScript中,我有一個對象的屬性,我試圖訪問,只有它是可用的,所以我做條件空/未定義的檢查使用該對象之前。IE有條件檢查
if(object !== undefined && object != null) // Occurs in IE8
{
// Use object
// Object.someProperty
}
在FF &瀏覽器,如預期所定義的行爲。當他們看到object爲null時,它不會進入if語句中。然而,在IE中,它抱怨不應該訪問「someProperty」,因爲Object是空的,並且無論如何。但這就是爲什麼我的條件檢查是在那裏,Chrome實現了它。
我的問題是,爲什麼即使在if語句嘗試使用時,有條件檢查停止它的對象執行行?
此外,解決這個問題如下:
if(object !== undefined && object != null && true)
{
// Use object
// Object.someProperty
}
的通知 「& &真正的」 undefined和null檢查後。這似乎迫使IE認識到這種情況應該真正評估爲假,並且它按預期工作。
所以雖然似乎有一種方法來「使其工作」,我的上述問題仍然存在。
在此先感謝你們!如果你沒有定義或聲明它,object
只應null
如果明確將其設置爲null
這是IE8只?你有沒有試過其他的IE版本? – Spudley
顯示什麼'對象'是 – Ian
請顯示一個我們可以重現的真實測試用例。通常,'object!= null'就足夠了,因爲與'null'的寬鬆比較也會將強制轉換爲'undefined'。 –