达同一篇小说中总了js数据类型检测的几乎单方法和jQuery的家伙方法type方法,本篇要分析几独办法还依赖type方法,所以无通晓type方法的请先参看http://www.cnblogs.com/yy-hh/p/4667950.html 

isFunction方法

 

用于测试是否也函数的目的

示例:

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);
})

运作结果:

[ 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方法及函数例如alert在ie里面会回到false,看了生这bug,因为toString方法和valueOf方法还谋面吃重新写用有人便提议了于是instanceof方法检测可是当ie6仍然有问题。近期截至这么些bug还一直不关闭具体我们可以从参考官网bug页以自己分析的凡1.7.1于是尽管优先随此本子来,那么些点子就是是简简单单的调用type方法判断该回到结果是否也字符串function

 

isArray方法

 

用于测试是否为数组的目的

示例:

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

源码分析:

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

及isFunctoin一样直接使用type方法的回来结果

 

isNumeric方法

 

规定它们的参数是否是一个数字。

jQuery,$.isNumeric()方法检查她的参数是否代表一个数值。倘诺是这样,它回到
true。否则,它回到false。该参数可以是另类型的

示例:

$.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 );
},

其一措施无是判断Number类型而是看起如数字之系列只要传上的参数包含数字那么固然会面重返true,首先用parseFloat方法将参数转为数组,此方法会保留参数中的数字有过滤掉其他有,如若结果未是NaN也无过最特别价值就是true否则归false

 

isWindow方法

 

用来测试是否为window对象

源码分析:

// A crude way of determining if an object is a window
isWindow: function( obj ) {
    return obj && typeof obj === "object" && "setInterval" in obj;
 },

一致种植简单的艺术判断目标是window,假诺满意传进的凡目标又具有setInterval方法则以为该对象为window对象,现在夫形式都转移也判断是否是窗口对象了具体未来当条分缕析

 

 

相关文章

网站地图xml地图