所以我有這樣的情況基本上錯誤,當Javascript'或'||在這種情況下使用運營商
var a = someUndefinedVariable.name || "";
在這種情況下,爲什麼「A」不等於空字符串??? 這個表達式拋出一個錯誤,所以我認爲執行就停止了,Interpreter沒有到達帶有OR語句的部分。這樣對嗎? 但是,沒有屬性名稱一切正常。 非常感謝您的關注。
所以我有這樣的情況基本上錯誤,當Javascript'或'||在這種情況下使用運營商
var a = someUndefinedVariable.name || "";
在這種情況下,爲什麼「A」不等於空字符串??? 這個表達式拋出一個錯誤,所以我認爲執行就停止了,Interpreter沒有到達帶有OR語句的部分。這樣對嗎? 但是,沒有屬性名稱一切正常。 非常感謝您的關注。
您可能會檢查someUndefinedVariable
第一,以防止一個未定義的變量
var a = someUndefinedVariable && someUndefinedVariable.name || "";
好的提示!謝謝! – Artdark92
由於someUndefinedVariable
的性質的訪問,爲undefined
,沒有財產name
,所以它崩潰。其替換爲:
var a = (someUndefinedVariable && someUndefinedVariable.name) || "";
This expression throws an error so I think execution just stops and Interpreter does not reaching to the part with the OR statement. Is it right?
是。異常停止執行(除非你是catch
他們)。
However, without property name everything works fine.
undefined
值,那麼您可以自由訪問它。這只是undefined
。undefined
值的屬性會引發異常: 遺漏的類型錯誤:無法讀取的不確定你正在處理的案件2和3
非常感謝您的回答。現在一切都很清楚! – Artdark92
你屬性「欄」應該使用
var a = (someUndefinedVariable && someUndefinedVariable.name) || "";
因爲您指的是未定義變量的屬性,它會崩潰,而不是檢查變量是否存在於h之前和
不錯的提示!謝謝! – Artdark92
不可回答的問題。 –
@MarcoSalerno,我理解了它。 –
你猜對了,這是不同的 –