在編寫JavaScript程式時往往需要偵測某一變數是否存在,這是一件非常簡單的工作,但如果不細心也會遇到一些問題。主要有一些幾點: 1、普通變量 複製代碼 代碼如下: <BR>if(variable){ <BR>alert('rain man'); <BR>} <BR> 這時會出現'variable is not defined'的錯誤,如果改成下面就會彈出預期的對話框: 複製程式碼 程式碼如下: <BR>if( typeof variable == 'undefined' ){ <BR>alert ('rain man'); <BR>} <BR> 2.物件的屬性 複製程式碼 程式碼如下: <BR>var two = {}; <BR>if( two.b){ <BR>alert('rain man'); <BR>} <BR>if( window.addEventListener ){ <BR>alert('This is not IE!'); <BR>} <BR> 對於偵測物件的屬性則不必使用typeof 。 3、在給對象添加屬性時,也會遇到類似的問題 複製代碼 程式碼如下: <BR>var obj = {}; <BR>obj.property.number = 2; //這時會出現'obj.property is undefined' 的錯誤<br><br>/**<BR>* 下面這種情況雖然沒有出現語法錯誤,但實際上已經出現了錯誤. <BR>* 屬性是複合型變數所特有的,而obj.property是數值型變數,不能含有屬性. <BR>*/ <BR>var obj = {}; <BR>obj.property = 2 ; <BR>obj.property. number = 3; <BR>