關(guān)于JavaScript和jQuery的類型判斷詳解
對(duì)于類型的判斷,JavaScript用typeof來(lái)進(jìn)行。
栗子:
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并不能夠準(zhǔn)確的判斷出每一種數(shù)據(jù)類型,比如null和數(shù)組等都是object類型。因此,JavaScript判斷數(shù)據(jù)類型不推薦使用typeof。
那么要如何具體判斷呢??看一下語(yǔ)法<( ̄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(),進(jìn)行判斷
栗子:
console.log($.type(null)); //null console.log($.type([])); //array console.log($.type({})); //object console.log($.type(1)); //number ......不全寫完了,結(jié)果和{}.toString.call(obj);是一樣的
實(shí)際上{}.toString.call(obj);就是jQuery中$.type()這個(gè)工具方法的實(shí)現(xiàn)最重要的一段代碼(⊙o⊙)哦,神奇吧!趕快去jQuery源碼中找找看吧~~
以上就是小編為大家?guī)?lái)的關(guān)于JavaScript和jQuery的類型判斷詳解全部?jī)?nèi)容了,希望大家多多支持腳本之家~
相關(guān)文章
jQuery的cookie插件實(shí)現(xiàn)保存用戶登陸信息
保存用戶登陸信息的方法有很多,本文為大家介紹的這個(gè)方法是通過(guò)cookie插件來(lái)實(shí)現(xiàn),需要的朋友可以參考下2014-04-04淺析jQuery Ajax請(qǐng)求參數(shù)和返回?cái)?shù)據(jù)的處理
這篇文章主要介紹了淺析jQuery Ajax請(qǐng)求參數(shù)和返回?cái)?shù)據(jù)的處理的相關(guān)資料,需要的朋友可以參考下2016-02-02jQuery Tips 為AJAX回調(diào)函數(shù)傳遞額外參數(shù)的方法
討論這個(gè)問(wèn)題基于如下場(chǎng)景:點(diǎn)擊頁(yè)面上某個(gè)按鈕之后,觸發(fā)click事件,事件處理函數(shù)內(nèi)部發(fā)送一個(gè)AJAX請(qǐng)求,AJAX回調(diào)函數(shù)更新頁(yè)面的某一個(gè)部分。2010-12-12jQuery中DOM樹(shù)操作之復(fù)制元素的方法
這篇文章主要介紹了jQuery中DOM樹(shù)操作之復(fù)制元素的方法,實(shí)例分析了DOM樹(shù)復(fù)制元素的使用技巧,需要的朋友可以參考下2015-01-01基于JQuery.timer插件實(shí)現(xiàn)一個(gè)計(jì)時(shí)器
基于JQuery.timer插件實(shí)現(xiàn)一個(gè)計(jì)時(shí)器,需要的朋友可以參考下。2010-04-04jquery實(shí)現(xiàn)輸入框動(dòng)態(tài)增減的實(shí)例代碼
主要功能是動(dòng)態(tài)增減輸入框,而且支持對(duì)各個(gè)輸入框的檢測(cè),每個(gè)輸入框在輸入內(nèi)容后,對(duì)其進(jìn)行錯(cuò)誤提示2013-07-07