what-is
v0.1.2-EOL
Published
A very simple "typeof" detection
Downloads
119
Maintainers
Readme
NOTE: The package what-is was renamed to wots. Please, consider installing the renamed version.
why?
The library was written as a simple coding exercise, but then appeared useful to share :wink:
how?
npm install --save what-isand then
var whatis = require('what-is');
// ...
if (whatis(myNotAlwaysNumericVariable) === 'NaN') {
// do some stuff
}what?
whatis() function returns reasonable type names for tested values:
| description | input | result |
| :------------------ | :---------------------------------- |:------------- |
| null | null | 'null' |
| undefined | undefined | 'undefined' |
| strings | 'foo' | 'string' |
| | '' | 'string' |
| | ['Hello', 'world!'].join(' ') | 'string' |
| | new String() | 'string' |
| numbers | 5 | 'number' |
| | parseInt(42) | 'number' |
| | new Number('3') | 'number' |
| | NaN | 'NaN' |
| | Infinity | 'Infinity' |
| | 1 / -0 | 'Infinity' |
| boolean values | false | 'boolean' |
| | !!nonEmptyVariable | 'boolean' |
| |new Boolean('0') | 'boolean' |
| regular expressions | /^test$/g | 'regexp' |
| | new RegExp('needle', 'i') | 'regexp' |
| arrays | ['foo', 'bar', 'baz'] | 'array' |
| | new Array(10) | 'array' |
| objects | { foo: 'bar'} | 'object' |
| | {} | 'object' |
| | new Object() | 'object' |
| | Object.create(null) | throws error (to be fixed) |
| functions | function () {} | 'function' |
| | new Function('return null') | 'function' |
| date objects | new Date() | 'date' |
| errors | new Error('error!') | 'error' |
| | new TypeError('type error!') | 'error' |
| arguments objects | (function(){return arguments;})() | 'arguments' |
| class constructors | new MyClass() | 'myclass' |
| | new Buffer() | 'buffer' |
| | new XMLHttpRequest() | 'xmlhttprequest' |
| promises | new Promise(function() {}) | 'promise' |
| | Promise.resolve('data') | 'promise' |
| | Promise.reject(new Error('Oop!')) | 'promise' |
Note: for more examples see test file
