jQuery 各类判断函数汇总

Posted huansky

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jQuery 各类判断函数汇总相关的知识,希望对你有一定的参考价值。

1、类型type

type: function( obj ) {
        if ( obj == null ) {
            return String( obj );
        }
        // Support: Safari <= 5.1 (functionish RegExp)
        // 利用事先存好的 hash 表 class2type 作精准判断
        return typeof obj === "object" || typeof obj === "function" ?
            class2type[ core_toString.call(obj) ] || "object" :
            typeof obj;
    },

首先其修正了 typeof null 为object的缺陷。其次利用事先存好的 hash 表 class2type 作精准判断。

其中core_toString=obj.toString;obj是一个对象

var obj={};arr=[];
    console.log(obj.toString.call(arr));//[object Array]
    console.log(obj.toString.call(obj));//[object Object]

2、空对象isEmptyObject

// 检查对象是否为空(不包含任何属性)
    isEmptyObject: function( obj ) {
        var name;
        //对于空对象是不会执行for循环语句的
        for ( name in obj ) {
            return false;
        }
        return true;
    },

3、数字isNumeric

// 确定它的参数是否是一个数字
    //isFinite判断数组的元素是否是有界的
    isNumeric: function( obj ) {
        return !isNaN( parseFloat(obj) ) && isFinite( obj );
    },

4、函数isFunction

isFunction: function( obj ) {
        return jQuery.type(obj) === "function";
    },

主要是利用前面的type.

5、window

// 判断传入对象是否为 window 对象
    isWindow: function( obj ) {
        return obj != null && obj === obj.window;
    },

 6、isArray

// 判断传入对象是否为数组
    isArray: Array.isArray,

利用数组自带的isArray来判断

var arr=[];
    console.log(Array.isArray(arr));//true

 7、isPlainObject

// 测试对象是否是纯粹的对象
    // 通过 "{}" 或者 "new Object" 创建的
    isPlainObject: function( obj ) {
        // Not plain objects:
        // - Any object or value whose internal [[Class]] property is not "[object Object]"
        // - DOM nodes
        // - window
        // Make sure that DOM nodes and window objects don‘t pass through, as well
        if ( jQuery.type( obj ) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) {
            return false;
        }

        // Support: Firefox <20
        // The try/catch suppresses exceptions thrown when attempting to access
        // the "constructor" property of certain host objects, ie. |window.location|
        // https://bugzilla.mozilla.org/show_bug.cgi?id=814622
        try {
            if ( obj.constructor &&
                    !core_hasOwn.call( obj.constructor.prototype, "isPrototypeOf" ) ) {
                return false;
            }
        } catch ( e ) {
            return false;
        }

        // If the function hasn‘t returned already, we‘re confident that
        // |obj| is a plain object, created by {} or constructed with new Object
        return true;
    },

 

以上是关于jQuery 各类判断函数汇总的主要内容,如果未能解决你的问题,请参考以下文章

Jquery插件 easyUI属性汇总

Cocos2d-x 3.0 基础系列一 各类回调函数写法汇总

Cocos2d-x 3.0 基础系列一 各类回调函数写法汇总

function汇总

常用Javascript代码片段集锦

jQuery的DOM操作