欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

代碼分析jQuery四種靜態(tài)方法使用

 更新時間:2015年07月23日 10:47:22   投稿:mrr  
這篇文章主要通過代碼介紹了jQery四種靜態(tài)方法(isFunction,isArray,isWindow,isNumeric)的使用,需要的朋友可以參考下

jQery每一個方法都有對應(yīng)代碼解析,非常詳細(xì),具有介紹請看下文:

isFunction方法

用于測試是否為函數(shù)的對象

示例:

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é)果:

復(fù)制代碼 代碼如下:

[ 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里面會返回false,看了下這個bug,因為toString方法和valueOf方法都會被重寫所以有人就提出了用instanceof方法檢測但是在ie6還是有問題。目前為止這個bug還沒有關(guān)閉具體大家可以從參考官網(wǎng)bug頁因為我分析的是1.7.1所以就先按照這個版本來,這個方法就是簡單的調(diào)用type方法判斷其返回結(jié)果是否為字符串function
 
isArray方法

用于測試是否為數(shù)組的對象

示例:

 

$("b").append( " + $.isArray([]) );//<b>true</b>

isArray: Array.isArray || function( obj ) {
    return jQuery.type(obj) === "array";
 },

跟isFunctoin一樣直接使用type方法的返回結(jié)果

isNumeric方法

確定它的參數(shù)是否是一個數(shù)字。

$.isNumeric() 方法檢查它的參數(shù)是否代表一個數(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

源碼分析:

復(fù)制代碼 代碼如下:

isNumeric: function( obj ) {
        return !isNaN( parseFloat(obj) ) && isFinite( obj );
},

這個方法不是判斷Number類型而是看起來像數(shù)字的類型只要傳進(jìn)去的參數(shù)包含數(shù)字那么就會返回true,首先使用parseFloat方法把參數(shù)轉(zhuǎn)為數(shù)組,此方法會保留參數(shù)中的數(shù)字部分過濾掉其他部分,如果結(jié)果不是NaN也沒有超過最大值就是true否則返回false

isWindow方法

用于測試是否為window對象

復(fù)制代碼 代碼如下:
isNumeric: function( obj ) { return !isNaN( parseFloat(obj) ) && isFinite( obj ); },

一種粗略的方法判斷對象是window,如果滿足傳進(jìn)來的是對象而且具有setInterval方法則認(rèn)為該對象為window對象,現(xiàn)在這個方法已經(jīng)改為判斷是否是窗口對象了具體以后在分析。希望大家能夠喜歡以上內(nèi)容所述。

相關(guān)文章

最新評論