code: function get_type( o ) {
  
          if ( o === null )                          { return 'null'; }
          if ( o === undefined )                     { return 'undefined'; }
  
          if ( o instanceof Array )                  { return 'array'; }
          if ( o instanceof RegExp )                 { return 'regexp'; }
  
          if ( typeof o === 'function' )             { return 'function'; }
  
          if ( !!o === o || o instanceof Boolean )   { return 'boolean'; }
          if (  +o === o || o instanceof Number )    { return 'number'; }
          if ( ''+o === o || o instanceof String )   { return 'string'; }
  
          if ( isNaN( o ) && typeof o === 'number' ) { return 'nan'; }
  
          return 'object';
      }
docs: better typeof