code: function typeOf(object) {
  	var result;
  
  	if (object === null) {
  		result = 'null';
  	} else if (_isArray(object)) {
  		result = 'array';
  	} else if (object !== object) {
  		result = 'NaN';
  	} else if (object === Infinity || object === -Infinity) {
  		result = 'Infinity';
  	} else if (object instanceof RegExp) {
  		result = 'regexp';
  	} else if (object instanceof Number) { // new Number
  		result = 'number';
  	} else if (object instanceof Boolean) { // new Boolean
  		result = 'boolean';
  	} else if (object instanceof String) { // new String
  		result = 'string';
  	} else {
  		result = typeof object;
  		if (result === 'number' && isNaN(object)) { // 以防有漏网之鱼
  			result = 'NaN';
  		}
  	}
  
  	return result;
  }
docs: 用于得到数据类型
  一般以 string 类型返回数据类型的值
  数据类型判断不依照 JS 规则，而是以以下基准判断
  'null' === typeOf(null)
  'undefined' === typeOf(undefined)
  'boolean' === typeOf(boolean)
  'NaN' === typeOf(NaN) 仅用于 NaN ，如果提供的是 '12X' 则直接判断为字符串
  'Infinity' === typeOf(Infinity) 仅用于 Infinity 和 -Infinity，其他可用字面量表达的数字判断为 number
  'number' === typeOf(number)
  'string' === typeOf(string)
  'function' === typeOf(function)
  'object' === typeOf(object)
  'array' === typeOf(array)
  'regexp' === typeOf(regexp)
  
  String、Number、Boolean 这三种可以被包装的对象也当成字面量来进行判断，而不返回 object
  即
  'string' === typeOf(new String());
  'number' === typeOf(new Number());
  'boolean' === typeOf(new Boolean());
  
  但不会判断包括JS 内置的 Date 类型，以及 XmllWrapper 在内的 Coralian 自定义数据类型，这些类型都将被辨认为 object
  
  @returns