首页 > 资讯列表 > 编程/数据库 >> PHP

jQuery.isArray方法使用说明

PHP 2014-11-28 11:04:07 转载来源: 网络整理/侵权必删

本文为大家讲解的是jQuery.isArray方法使用说明,isarray从字面上就可以看出来是用来判断某个对象是否是数组,感兴趣的同学参考下。 jQuery.isArray方法应于判断是不是数组,是的话返回true,否则返回false

本文为大家讲解的是jQuery.isArray方法使用说明,isarray从字面上就可以看出来是用来判断某个对象是否是数组,感兴趣的同学参考下。

jQuery.isArray方法应于判断是不是数组,是的话返回true,否则返回false。调用如:jQuery.isArray([]),返回true。其实现源码如下:

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

我们看到它的主要逻辑是先看浏览器支不支持Array.isArray方法,如果不支持则调应jQuery自己的jQuery.type方法,看其返回值是不是"array"。

firefox、chrome、IE9及以上的浏览器都支持Array.isArray方法。其它浏览器就需要jQuery.type的帮忙了,jQuery.type的源码如下:

 
type: function( obj ) {
    if ( obj == null ) {
        return obj + "";
    }
    return typeof obj === "object" || typeof obj === "function" ?
        class2type[ toString.call(obj) ] || "object" :
        typeof obj;
}

代码中的if好理解,如果传入的null则返回“null”字符串。

return 后面的代码结构上看起来比较乱。我们整理如下:

return ( typeof obj === "object" || typeof obj === "function" )  ? ( class2type[ toString.call(obj) ] || "object" ) : typeof obj;

现在清楚多了,它是判断( typeof obj === "object" || typeof obj === "function" )的值是不是真,如果是真则返回 ( class2type[ toString.call(obj) ] || "object" ),反之则返回 typeof obj。

所以当传入的是字符串,数字,undefined的时直接返回 typeof obj。当传入的是对象、数组、函数时则直接返回 ( class2type[ toString.call(obj) ] || "object" )。现在主要看看class2type[ toString.call(obj) ]的实现:

var class2type = {};
var toString = class2type.toString;
jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) {
    class2type[ "[object " + name + "]" ] = name.toLowerCase();
});

jQuery定义了class2type的一个对象,并将其初始化为如下的格式:

{
    "[object Array]" : "array",
    "[object Boolean]" : "boolean",
    "[object Date]" : "date",
    "[object Error]" : "error",
    "[object Function]" : "function",
    "[object Number]" : "number",
    "[object Object]" : "object",
    "[object RegExp]" : "regexp",
    "[object String]" : "string"
}

toString方法的返回值正好是class2type对象的key值。所以class2type[ toString.call(obj) ]正好得到我们需要的返回类型字符串。


标签: jQuery.isArray 方法 使用说明


声明:本文内容来源自网络,文字、图片等素材版权属于原作者,平台转载素材出于传递更多信息,文章内容仅供参考与学习,切勿作为商业目的使用。如果侵害了您的合法权益,请您及时与我们联系,我们会在第一时间进行处理!我们尊重版权,也致力于保护版权,站搜网感谢您的分享!

站长搜索

http://www.adminso.com

Copyright @ 2007~2024 All Rights Reserved.

Powered By 站长搜索

打开手机扫描上面的二维码打开手机版


使用手机软件扫描微信二维码

关注我们可获取更多热点资讯

站长搜索目录系统技术支持