代碼分析jQuery四種靜態(tài)方法使用
jQery每一個(gè)方法都有對(duì)應(yīng)代碼解析,非常詳細(xì),具有介紹請看下文:
isFunction方法
用于測試是否為函數(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ì)被重寫所以有人就提出了用instanceof方法檢測但是在ie6還是有問題。目前為止這個(gè)bug還沒有關(guān)閉具體大家可以從參考官網(wǎng)bug頁因?yàn)槲曳治龅氖?.7.1所以就先按照這個(gè)版本來,這個(gè)方法就是簡單的調(diào)用type方法判斷其返回結(jié)果是否為字符串function
isArray方法
用于測試是否為數(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ù)可以是任何類型的
示例:
$.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類型而是看起來像數(shù)字的類型只要傳進(jìn)去的參數(shù)包含數(shù)字那么就會(huì)返回true,首先使用parseFloat方法把參數(shù)轉(zhuǎn)為數(shù)組,此方法會(huì)保留參數(shù)中的數(shù)字部分過濾掉其他部分,如果結(jié)果不是NaN也沒有超過最大值就是true否則返回false
isWindow方法
用于測試是否為window對(duì)象
復(fù)制代碼 代碼如下:isNumeric: function( obj ) { return !isNaN( parseFloat(obj) ) && isFinite( obj ); },
一種粗略的方法判斷對(duì)象是window,如果滿足傳進(jìn)來的是對(duì)象而且具有setInterval方法則認(rèn)為該對(duì)象為window對(duì)象,現(xiàn)在這個(gè)方法已經(jīng)改為判斷是否是窗口對(duì)象了具體以后在分析。希望大家能夠喜歡以上內(nèi)容所述。
相關(guān)文章
jQuery UI Draggable + Sortable 結(jié)合使用(實(shí)例講解)
下面小編就為大家?guī)硪黄猨Query UI Draggable + Sortable 結(jié)合使用(實(shí)例講解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-09-09
基于jquery1.4.2的仿flash超炫焦點(diǎn)圖播放效果
有了jquery一切變的如此簡單!讓js做的動(dòng)畫更有動(dòng)感。2010-04-04
jquery入門—數(shù)據(jù)刪除與隔行變色以及圖片預(yù)覽
項(xiàng)目需求:表格中數(shù)據(jù)隔行變色、刪除數(shù)據(jù)、全選刪除、鼠標(biāo)移動(dòng)到圖片時(shí)顯示圖片預(yù)覽等等,感興趣的朋友可以參考下2013-01-01
jQuery 中國省市兩級(jí)聯(lián)動(dòng)選擇附圖
有關(guān)中國省市兩級(jí)聯(lián)動(dòng)選擇的實(shí)現(xiàn)代碼在網(wǎng)上可以找到很多,而本文要為大家介紹的是一個(gè)比較實(shí)用的省市兩級(jí)聯(lián)動(dòng)選擇,感興趣的朋友可以參考下2014-05-05
結(jié)構(gòu)/表現(xiàn)/行為完全分離的選項(xiàng)卡(jquery版和原生JS版)
日常項(xiàng)目中常用到的,用jQuery和原生JS分別寫了一個(gè). 兩種寫法均實(shí)現(xiàn)了結(jié)構(gòu)/表現(xiàn)/行為的完全分離.當(dāng)然,稍作修改,可以在同一個(gè)頁面中應(yīng)用于多個(gè)選項(xiàng)卡.2010-08-08

