Better typeof
. Detects real type of the objects like Array()
, new Number(1)
, new Boolean(true)
, etc.
compression | size |
---|---|
precise-typeof.js | 1.69 kB |
precise-typeof.min.js | 809 B |
precise-typeof.min.js.gz | 391 B |
Install
$ yarn add precise-typeof
or
$ npm install --save precise-typeof
Examples
var typeOf = ; ; // -> 'object'; // -> 'object'; // -> 'array'; // -> 'number'; // -> 'number'; // -> 'string'; // -> 'function'; // -> 'function'; // -> 'undefined'; // -> 'boolean'; // -> 'null'; // -> 'nan' // object values; // -> 'object'; // -> 'array'; // -> 'number'; // -> 'number'; // -> 'string'; // -> 'function'; // -> 'boolean'; // -> 'nan' // instances; // -> 'object' // special objects; // -> 'regexp'; // -> 'date'; // -> 'math'; // -> 'error'; // -> 'arguments' // node; // -> 'global'; // -> 'process'; // -> 'buffer'; // -> 'buffer'; // -> 'buffer' // es6; // -> 'symbol' // browser; // -> 'global'; // -> 'html'; // -> 'html'; // -> 'html'; // -> 'html'; // -> 'html'; // -> 'text'; // -> 'comment'; // -> 'event'; // -> 'event'; // -> 'event'; // -> 'event'
{ pojoOnly: true }
With pojoOnly
flag it only reports Plain-Old Javascript Objects as object
,
and reports "instances" by their constructor names (e.g. Moment
for moment
instance).
In case if object was created from the nameless function, it will be reported as unknown
.
var typeOf = ; // reported differently with `{pojoOnly: true}`; // -> 'Moment'; // -> 'ABC'; // -> 'unknown' // same with or without `{pojoOnly: true}`; // -> 'object'; // -> 'array'; // -> 'number'; // -> 'number'; // -> 'string'; // -> 'function'; // -> 'function'; // -> 'undefined'; // -> 'boolean'; // -> 'null'; // -> 'nan' ; // -> 'object'; // -> 'array'; // -> 'number'; // -> 'number'; // -> 'string'; // -> 'function'; // -> 'boolean'; // -> 'nan'
License
Precise-TypeOf is released under the MIT license.