type-name
Just a reasonable typeof
DESCRIPTION
typeName
function returns reasonable type name for input value.
description | input | result |
---|---|---|
null literal | null |
'null' |
undefined value | undefined |
'undefined' |
string literal | 'foo' |
'string' |
number literal | 5 |
'number' |
boolean literal | false |
'boolean' |
regexp literal (Android 4.1+) | /^not/ |
'RegExp' |
array literal | ['foo', 4] |
'Array' |
object literal | {name: 'bar'} |
'Object' (be careful!) |
function expression | function () {} |
'function' |
String object | new String('foo') |
'String' |
Number object | new Number('3') |
'Number' |
Boolean object | new Boolean('1') |
'Boolean' |
Date object | new Date() |
'Date' |
RegExp object (Android 4.1+) | new RegExp('^not', 'g') |
'RegExp' |
Array object | new Array() |
'Array' |
Object object | new Object() |
'Object' |
Function object | new Function('x', 'y', 'return x + y') |
'function' (be careful!) |
Error object | new Error('error!') |
'Error' |
TypeError object | new TypeError('type error!') |
'TypeError' |
NaN | NaN |
'number' |
Infinity | Infinity |
'number' |
Math | Math |
'Math' |
JSON (IE8+) | JSON |
'JSON' |
arguments object (IE9+) | (function(){ return arguments; })() |
'Arguments' |
User-defined constructor | new Person('alice', 5) |
'Person' |
Anonymous constructor | new AnonPerson('bob', 4) |
'' |
Named class | new(class Foo { constructor() {} }) |
'Foo' |
Anonymous class | new(class { constructor() {} }) |
'' |
Symbol | Symbol("FOO") |
'symbol' |
Promise | Promise.resolve(1) |
'Promise' |
EXAMPLE
var typeName = ;var assert = ; ;;;;;;;;;;;;;;;;;;;;;;; // IE8+; // IE9+;; { thisname = name; thisage = age;} var { thisname = name; thisage = age;}; ;; ;;
INSTALL
via npm
Install
$ npm install --save type-name
Use
var typeName = ;console;
use type-name npm module on browser
typeName
function is exported
<script type="text/javascript" src="./path/to/node_modules/type-name/build/type-name.js"></script>
via bower
Install
$ bower install --save type-name
Load (typeName
function is exported)
<script type="text/javascript" src="./path/to/bower_components/type-name/build/type-name.js"></script>
Use
console;
AUTHOR
CONTRIBUTORS
LICENSE
Licensed under the MIT license.