JavaScript和jQuery的類型判斷


此博文為原創,轉載請注明出處!

對於類型的判斷,JavaScript用typeof來進行。

栗子:

console.log(typeof null);            //object
console.log(typeof []);              //object
console.log(typeof {});              //object
console.log(typeof new Date());      //object
console.log(typeof new Object);      //object
console.log(typeof function(){});    //function
console.log(typeof alert);           //function
console.log(typeof 1);               //number
console.log(typeof "abc");           //string
console.log(typeof true);            //boolean

可以看到,typeof並不能夠准確的判斷出每一種數據類型,比如null和數組等都是object類型。因此,JavaScript判斷數據類型不推薦使用typeof。

那么要如何具體判斷呢??看一下語法<( ̄3 ̄)> !

{}.toString.call(obj);

栗子:

console.log({}.toString.call(null));            //[object Null]
console.log({}.toString.call([]));              //[object Array]
console.log({}.toString.call({}));              //[object Object]
console.log({}.toString.call(new Date()));      //[object Date]
console.log({}.toString.call(function(){}));    //[object Function]
console.log({}.toString.call(new Object));      //[object Object]
console.log({}.toString.call(alert));           //[object Function]
console.log({}.toString.call(1));               //[object Number]
console.log({}.toString.call('abc'));           //[object String]
console.log({}.toString.call(true));            //[object Boolean]

哈哈,是不是一目了然呀!!

那如果你用的是jQuery,就不用這么麻煩嘍,可以直接用工具方法$.type(),進行判斷

栗子:

console.log($.type(null));                  //null
console.log($.type([]));                    //array
console.log($.type({}));                    //object
console.log($.type(1));                     //number
......不全寫完了,結果和
{}.toString.call(obj);是一樣的
實際上{}.toString.call(obj);就是jQuery中$.type()這個工具方法的實現最重要的一段代碼(⊙o⊙)哦,神奇吧!趕快去jQuery源碼中找找看吧~~

如果哪里寫的有問題,歡迎各路大神指正!

 


免責聲明!

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



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