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