1. 程式人生 > 其它 >判斷一個數據的型別

判斷一個數據的型別

1⃣️.typeof 運算子號

缺點:typeof檢測null的時候也會返回Object

2⃣️.instanceof運算子

優點:彌補了typeof不能具體檢測屬於哪個物件的侷限性

缺點:不能用來檢測和處理字面量方式創建出來的基本資料型別,即原始資料型別

function checkIsInstanceOf(obj,type){
    let proto = Object.getPrototypeOf(obj)
    while(proto!=null){
        if(proto===type.prototype){
            return true
        }
        proto = Object.getPrototypeOf(obj)
    }
    return false
}

3⃣️.constructor建構函式

優點:作用和instanceof相同,可以處理引用型別還能處理原始資料型別

使用constructor的時候最好加上(),放置js把它當成小數

(1).constructor === Number

缺點:由於是函式原型上面的屬性,類的原型進行重寫後,可能導致判斷不準確

4⃣️.Object.prototype.toString.call()方法

Object.prototype.toString返回當前方法的執行體所屬類的詳細資訊

返回結果如:[object Number]