javascript中怎麼判斷某變數是null,undefined,還是不存這個變數 ? 以及變數是array 還是 object 還是 null ?
阿新 • • 發佈:2019-01-26
(以下用 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就是有匹配到 ]