javascript中怎麼判斷某變數是null,undefined,還是不存這個變數 ? 以及變數是array 還是 object 還是 null ?

Day____Day____Up發表於2018-03-11

(以下用 i 變數做例子)

看是否存在這個變數:  'i' in window  存在返回true反之返回false  (注意 i 要加上引號)

是否為null: i == null  是則返回true反之返回false 

是否為undefined: i == undefined  是則返回true反之返回false 


使用typeof 檢視變數型別 ;  null / object /array 型別的陣列都會返回  object

下面是具體區分是  null / object /array 型別方法:

先檢視  i == null  返回true則 i 為 null  反之返回false則不是

然後使用  i.constructor.toString().indexOf('Array')  > -1   如果表示式返回了true 則是 Array型別

同理使用  i.constructor.toString().indexOf('Object')  > -1   如果表示式返回了true 則是 object型別

[  說明: i.constructor返回的是i變數的構建函式,譬如i的是數字型變數    則返回  function Number() { [native code] }

toString() 則將上面的結果轉換為字串,indexOf('數值')則是匹配某個變數中有無存在括號內的數值,有則返回數值在變數中位置,如果沒找到則什麼都沒返回,所以只要大於-1就是有匹配到 ]


相關文章