代碼分析jQuery四種靜態(tài)方法使用
jQery每一個(gè)方法都有對(duì)應(yīng)代碼解析,非常詳細(xì),具有介紹請(qǐng)看下文:
isFunction方法
用于測(cè)試是否為函數(shù)的對(duì)象
示例:
function stub() { } var objs = [ function () {}, { x:15, y:20 }, null, stub, "function" ]; jQuery.each(objs, function (i) { var isFunc = jQuery.isFunction(objs[i]); $("span:eq( " + i + ")").text(isFunc); })
運(yùn)行結(jié)果:
[ true,false,false,true,false ]
源碼分析:
// See test/unit/core.js for details concerning isFunction. // Since version 1.3, DOM methods and functions like alert // aren't supported. They return false on IE (#2968). isFunction: function( obj ) { return jQuery.type(obj) === "function"; },
首先就告訴你自從1.3版本就有bug ,一些dom方法和函數(shù)例如alert在ie里面會(huì)返回false,看了下這個(gè)bug,因?yàn)閠oString方法和valueOf方法都會(huì)被重寫(xiě)所以有人就提出了用instanceof方法檢測(cè)但是在ie6還是有問(wèn)題。目前為止這個(gè)bug還沒(méi)有關(guān)閉具體大家可以從參考官網(wǎng)bug頁(yè)因?yàn)槲曳治龅氖?.7.1所以就先按照這個(gè)版本來(lái),這個(gè)方法就是簡(jiǎn)單的調(diào)用type方法判斷其返回結(jié)果是否為字符串function
isArray方法
用于測(cè)試是否為數(shù)組的對(duì)象
示例:
$("b").append( " + $.isArray([]) );//<b>true</b> isArray: Array.isArray || function( obj ) { return jQuery.type(obj) === "array"; },
跟isFunctoin一樣直接使用type方法的返回結(jié)果
isNumeric方法
確定它的參數(shù)是否是一個(gè)數(shù)字。
$.isNumeric() 方法檢查它的參數(shù)是否代表一個(gè)數(shù)值。如果是這樣,它返回 true。否則,它返回false。該參數(shù)可以是任何類(lèi)型的
示例:
$.isNumeric("-10"); // true $.isNumeric(16); // true $.isNumeric(0xFF); // true $.isNumeric("0xFF"); // true $.isNumeric("8e5"); // true (exponential notation string) $.isNumeric(3.1415); // true $.isNumeric(+10); // true $.isNumeric(0144); // true (octal integer literal) $.isNumeric(""); // false $.isNumeric({}); // false (empty object) $.isNumeric(NaN); // false $.isNumeric(null); // false $.isNumeric(true); // false $.isNumeric(Infinity); // false $.isNumeric(undefined); // false
源碼分析:
isNumeric: function( obj ) {
return !isNaN( parseFloat(obj) ) && isFinite( obj );
},
這個(gè)方法不是判斷Number類(lèi)型而是看起來(lái)像數(shù)字的類(lèi)型只要傳進(jìn)去的參數(shù)包含數(shù)字那么就會(huì)返回true,首先使用parseFloat方法把參數(shù)轉(zhuǎn)為數(shù)組,此方法會(huì)保留參數(shù)中的數(shù)字部分過(guò)濾掉其他部分,如果結(jié)果不是NaN也沒(méi)有超過(guò)最大值就是true否則返回false
isWindow方法
用于測(cè)試是否為window對(duì)象
復(fù)制代碼 代碼如下:isNumeric: function( obj ) { return !isNaN( parseFloat(obj) ) && isFinite( obj ); },
一種粗略的方法判斷對(duì)象是window,如果滿足傳進(jìn)來(lái)的是對(duì)象而且具有setInterval方法則認(rèn)為該對(duì)象為window對(duì)象,現(xiàn)在這個(gè)方法已經(jīng)改為判斷是否是窗口對(duì)象了具體以后在分析。希望大家能夠喜歡以上內(nèi)容所述。
相關(guān)文章
jquery實(shí)現(xiàn)倒計(jì)時(shí)效果
這篇文章主要介紹了jquery實(shí)現(xiàn)倒計(jì)時(shí)效果,根據(jù)設(shè)計(jì)一個(gè)游戲引出的倒計(jì)時(shí)功能,需要的朋友可以參考下2015-12-12Jquery Easyui日歷組件Calender使用詳解(23)
這篇文章主要為大家詳細(xì)介紹了Jquery Easyui日歷組件Calender的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12jquery刪除數(shù)據(jù)記錄時(shí)的彈出提示效果
這篇文章主要介紹了jquery實(shí)現(xiàn)的刪除數(shù)據(jù)記錄時(shí)的彈出提示效果,需要的朋友可以參考下2014-05-05jquery幻燈片插件bxslider樣式改進(jìn)實(shí)例
這篇文章主要介紹了jquery幻燈片插件bxslider樣式改進(jìn),對(duì)比官方樣式以實(shí)例形式講述了改進(jìn)的技巧,非常實(shí)用,需要的朋友可以參考下2014-10-10jQuery使用jsonp實(shí)現(xiàn)百度搜索的示例代碼
這篇文章主要介紹了jQuery使用jsonp實(shí)現(xiàn)百度搜索,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-07-07jQuery實(shí)現(xiàn)表格元素動(dòng)態(tài)創(chuàng)建功能
這篇文章主要為大家詳細(xì)介紹了jQuery實(shí)現(xiàn)表格元素動(dòng)態(tài)創(chuàng)建功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01jQuery實(shí)現(xiàn)的購(gòu)物車(chē)物品數(shù)量加減功能代碼
這篇文章主要介紹了jQuery實(shí)現(xiàn)的購(gòu)物車(chē)物品數(shù)量加減功能,涉及jQuery針對(duì)鼠標(biāo)事件的響應(yīng)及頁(yè)面元素動(dòng)態(tài)操作相關(guān)技巧,需要的朋友可以參考下2016-11-11