====== Type detection ======
Karmagination provides a way to detect data types reliably as the native built-in //typeof// method have quite a few quirks.
===== Karma.isKarma( data ) =====
Returns true if the object is an instance of Karmagination, false otherwise.
var a = Karma();
Karma.isKarma(a); // true
===== Karma.isGenericObject( data ) =====
Returns true if the current data type is either Object, Array, Date or null, false otherwise.
var a = [];
var b = {};
var c = new Date();
var d = null;
Karma.isGenericObject(a); // true
Karma.isGenericObject(b); // true
Karma.isGenericObject(c); // true
Karma.isGenericObject(d); // true
===== Karma.isObject( data ) =====
Returns true if the current data type is an Object, false otherwise.
var a = [];
var b = {};
var c = new Date();
var d = new Object();
Karma.isObject(a); // false
Karma.isObject(b); // true
Karma.isObject(c); // false
Karma.isObject(d); // true
===== Karma.isArray( data ) =====
Returns true if the current data type is an Array, false otherwise.
var a = [];
var b = {};
var c = new Date();
var d = new Array();
Karma.isArray(a); // true
Karma.isArray(b); // false
Karma.isArray(c); // false
Karma.isArray(d); // true
===== Karma.isDate( data ) =====
Returns true if the current data type is an instance of Date(), false otherwise.
var a = [];
var b = {};
var c = new Date();
var d = new Array();
Karma.isDate(a); // false
Karma.isDate(b); // false
Karma.isDate(c); // true
Karma.isDate(d); // false
===== Karma.isFunction( data ) =====
Returns true if the current data type is a function, false otherwise.
var a = function(){};
var b = new Function();
Karma.isFunction(a); // true
Karma.isFunction(b); // true
===== Karma.isString( data ) =====
Returns true if the current data type is a string, false otherwise.
var a = '';
var b = 'ABC';
var c = new String('ABC');
Karma.isString(a); // true
Karma.isString(b); // true
Karma.isString(c); // true
===== Karma.isNumber( data ) =====
Returns true if the current data type is an integer or float, false otherwise.
var a = 1;
var b = 0.1;
var c = -1;
var d = -0.1;
var e = new Number(1);
Karma.isNumber(a); // true
Karma.isNumber(b); // true
Karma.isNumber(c); // true
Karma.isNumber(d); // true
Karma.isNumber(e); // true
===== Karma.isValue( data ) =====
Returns true if the current data type is a string, integer or float, false otherwise.
var a = 1;
var b = 0.1;
var c = -1;
var d = -0.1;
var e = new Number(1);
var f = 'a';
var g = new String('a');
Karma.isNumber(a); // true
Karma.isNumber(b); // true
Karma.isNumber(c); // true
Karma.isNumber(d); // true
Karma.isNumber(e); // true
Karma.isNumber(f); // true
Karma.isNumber(g); // true
===== Karma.isBoolean( data ) =====
Returns true if the current data type is a boolean, false otherwise.
var a = true;
var b = false;
var c = !null;
var d = !!undefined;
Karma.isBoolean(a); // true
Karma.isBoolean(b); // true
Karma.isBoolean(c); // true
Karma.isBoolean(d); // true
===== Karma.isDefined( data ) =====
Returns true if the current data type inside a defined namespace is defined, false otherwise.
var a = true;
var b = false;
var c = null;
var d;
Karma.isDefined(window.a); // true
Karma.isDefined(window.b); // true
Karma.isDefined(window.c); // true
Karma.isDefined(window.d); // false
Karma.isDefined(d); // throws error (must be inside a defined namespace)