JavaScript Types
A simple JavaScript class could be used to detect object types. It is pretty lightweight, but if you don't need functions like Utils.isArray just delete it.
function Utils() {}
Utils.TYPE_ARRAY = 1;
Utils.TYPE_OBJECT = 2;
Utils.TYPE_STRING = 3;
Utils.TYPE_NUMBER = 4;
Utils.TYPE_BOOLEAN = 5;
Utils.TYPE_FUNCTION = 6;
Utils.TYPE_DATE = 7;
Utils.TYPE_NULL = 8;
Utils.TYPE_UNDEFINED = 9;
Utils.getType = function(obj) {
if (obj != null) {
switch (obj.constructor) {
case Array:
return Utils.TYPE_ARRAY;
case String:
return Utils.TYPE_STRING;
case Number:
return Utils.TYPE_NUMBER;
case Boolean:
return Utils.TYPE_BOOLEAN;
case Function:
return Utils.TYPE_FUNCTION;
case Date:
return Utils.TYPE_DATE;
default:
return Utils.TYPE_OBJECT;
}
} else if (obj === null) {
return Utils.TYPE_NULL;
} else {
return Utils.TYPE_UNDEFINED;
}
};
Utils.isArray = function(obj) {
return (Utils.getType(obj) === Utils.TYPE_ARRAY);
};
Utils.isString = function(obj) {
return (Utils.getType(obj) === Utils.TYPE_STRING);
};
Utils.isNumber = function(obj) {
return (Utils.getType(obj) === Utils.TYPE_NUMBER);
};
Utils.isBoolean = function(obj) {
return (Utils.getType(obj) === Utils.TYPE_BOOLEAN);
};
Utils.isFunction = function(obj) {
return (Utils.getType(obj) === Utils.TYPE_FUNCTION);
};
Utils.isDate = function(obj) {
return (Utils.getType(obj) === Utils.TYPE_DATE);
};
Utils.isObject = function(obj) {
return (Utils.getType(obj) === Utils.TYPE_OBJECT);
};
Utils.isNull = function(obj) {
return (Utils.getType(obj) === Utils.TYPE_NULL);
};
Utils.isUndefined = function(obj) {
return (Utils.getType(obj) === Utils.TYPE_UNDEFINED);
};

