javascript 類型的判斷


在平常寫js代碼,類型判斷必不可少,那么我們常見有哪幾種?看到了標題,先不看你會想到那些方法 ,常用呢些呢?那么今天我自己總結一些判斷類型的判斷,如有錯,萬望告知!

1:typeof 常用這種方法不錯

console.log(typeof 123 === "number"); //true

console.log(typeof "type" === "string"); //true

console.log(typeof undefined === "undefined"); //true
console.log(typeof function(){} === "function"); //true
//可是這兩個就無法判斷 都是"object"  console.log(typeof {} === "object"); //true  console.log(typeof [] === "object"); //true //注意 用typeof 判斷 null 或是 [] 無法通過console.log(typeof null === "null") 沒有標准值比較因此無法通過 ===  typeof [] // "object" type null // "undefined" 或是"object" 總之不同瀏覽器判斷 都有變化 ,奇葩的null

2: instanceof 來補充上面無法真正分辨出 數組 [] 與 json對象{} 。感覺instanceof 為了判斷 [] {}而生的!!!

 console.log([] instanceof Array)//true

 console.log({} instanceof Object)//true

// 判斷其他的就功力下降了
console.log(123 instanceof Number);//false
console.log("type" instanceof String);//false
 

3:toString.call() 這種方法不錯 與 老祖宗方法 Object.prototype.toString.call()一樣的 個人推薦用這種

 console.log(toString.call(123) === '[object Number]');//true
 console.log(toString.call('type') === '[object String]');//true
 console.log(toString.call(null) === '[object Null]');//true
 console.log(toString.call(undefined) === '[object Undefined]');//true
 console.log(toString.call(true) === '[object Boolean]');//true
 console.log(toString.call([]) === '[object Array]');//true
 console.log(toString.call({}) === '[object Object]');//true
 console.log(toString.call(function(){}) === '[object Function]');//true

4:constructor 構造函數的屬性  用來判別對創建實例對象的函數的引用(個人覺得:認爹媽用的)

        var arr = [];
        var str = 'type';
        var num = 123;
        var boo = true;
        var fn = function () {};
        var obj = {};
       
console.log(arr.constructor == Array);//true
console.log(str.constructor == String);//true
console.log(num.constructor == Number);//true
console.log(boo.constructor == Boolean);//true
console.log(fn.constructor == Function);//true
console.log(obj.constructor == Object);//true

5:還有ES6的,或是jQuery就不列舉了!!知道有這幾種也足夠使用了。。。

上面判斷的全都是內置對象實例后的類型判斷,那么大家應該知道類型判斷,日后GET起來,希望對你有用!!!深夜放毒,才是更有問道。。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM