js数据类型判断

var Type = (function() {
    var _toString = Object.prototype.toString,
        UNDEFINED_TYPE = "Undefined",
        NULL_TYPE = "Null",
        BOOLEAN_TYPE = "Boolean",
        NUMBER_TYPE = "Number",
        STRING_TYPE = "String",
        OBJECT_TYPE = "Object",
        BOOLEAN_CLASS = "[object Boolean]",
        NUMBER_CLASS = "[object Number]",
        STRING_CLASS = "[object String]",
        FUNCTION_CLASS = "[object Function]",
        DATE_CLASS = "[object Date]",
        ARRAY_CLASS = "[object Array]",
        REGEXP_CLASS = "[object RegExp]",
        ERROR_CLASS = "[object Error]";
    
    var type = function(o) {
        switch(o) {
            case null: return NULL_TYPE;
            case (void 0): return UNDEFINED_TYPE;
        }
        var t = typeof(o);
        switch(t) {
            case "undefined": return UNDEFINED_TYPE;
            case "boolean":return BOOLEAN_TYPE;
            case "string":return STRING_TYPE;
            case "number":return NUMBER_TYPE;
        }
        return OBJECT_TYPE;
    };
    
    var isUndefined = function(o) {
        return type(o) == UNDEFINED_TYPE;
    };
    var isNull = function(o) {
        return type(o) == NULL_TYPE;
    };
    var isBoolean = function(o) {
        return _toString.call(o) == BOOLEAN_CLASS;
    };
    var isNumber = function(o) {
        return _toString.call(o) == NUMBER_CLASS;
    };
    var isString = function(o) {
        return _toString.call(o) == STRING_CLASS;
    };
    var isFunction = function(o) {
        return _toString.call(o) == FUNCTION_CLASS;
    };
    var isDate = function(o) {
        return _toString.call(o) == DATE_CLASS;
    };
    var isArray = function(o) {
        return _toString.call(o) == ARRAY_CLASS;
    };
    var isRegExp = function(o) {
        return _toString.call(o) == REGEXP_CLASS;
    };
    var isError = function(o) {
        return _toString.call(o) == ERROR_CLASS;
    };
    
    return {
            'type': type,
            'isUndefined': isUndefined,
            'isNull': isNull,
            'isBoolean': isBoolean,
            'isNumber': isNumber,
            'isString': isString,
            'isFunction': isFunction,
            'isDate': isDate,
            'isArray': isArray,
            'isRegExp': isRegExp,
            'isError': isError
            };
})();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值