# Constructor Name > Determine the name of a value's constructor.
## Usage ```javascript var constructorName = require( '@stdlib/utils/constructor-name' ); ``` #### constructorName( value ) Returns the name of a value's constructor. ```javascript var v = constructorName( 'a' ); // returns 'String' v = constructorName( 5 ); // returns 'Number' function Beep() { return this; } v = constructorName( new Beep() ); // returns 'Beep' ``` | description | value | constructor | notes | | --------------------- | ----------------------------------- | --------------------- | ------------ | | string | `'beep'` | `'String'` | | | number | `5` | `'Number'` | | | NaN | `NaN` | `'Number'` | | | infinity | `+infinity`/`-infinity` | `'Number'` | | | boolean | `true`/`false` | `'Boolean'` | | | null | `null` | `'Null'` | | | undefined | `undefined` | `'Undefined'` | | | array | `['beep', 5]` | `'Array'` | | | object | `{'foo': 'bar'}` | `'Object'` | | | function | `function (){}` | `'Function'` | | | symbol | `Symbol()` | `'Symbol'` | ES2015 | | regexp | `/./` | `'RegExp'` | Android 4.1+ | | String | `new String('beep')` | `'String'` | | | Number | `new Number(5)` | `'Number'` | | | Boolean | `new Boolean(false)` | `'Boolean'` | | | Object | `new Object()` | `'Object'` | | | Array | `new Array()` | `'Array'` | | | Int8Array | `new Int8Array()` | `'Int8Array'` | | | Uint8Array | `new Uint8Array()` | `'Uint8Array'` | | | Uint8ClampedArray | `new Uint8ClampedArray()` | `'Uint8ClampedArray'` | | | Int16Array | `new Int16Array()` | `'Int16Array'` | | | Uint16Array | `new Uint16Array()` | `'Uint16Array'` | | | Int32Array | `new Int32Array()` | `'Int32Array'` | | | Uint32Array | `new Uint32Array()` | `'Uint32Array'` | | | Float32Array | `new Float32Array()` | `'Float32Array'` | | | Float64Array | `new Float64Array()` | `'Float64Array'` | | | ArrayBuffer | `new ArrayBuffer()` | `'ArrayBuffer'` | | | Buffer | `new Buffer()` | `'Buffer'` | Node.js | | Date | `new Date()` | `'Date'` | | | RegExp | `new RegExp('.')` | `'RegExp'` | Android 4.1+ | | Function | `new Function('x', 'return x')` | `'Function'` | | | Map | `new Map()` | `'Map'` | ES2015 | | WeakMap | `new WeakMap()` | `'WeakMap'` | ES2015 | | Set | `new Set()` | `'Set'` | ES2015 | | WeakSet | `new WeakSet()` | `'WeakSet'` | ES2015 | | Error | `new Error()` | `'Error'` | | | TypeError | `new TypeError()` | `'TypeError'` | | | SyntaxError | `new SyntaxError()` | `'SyntaxError'` | | | ReferenceError | `new ReferenceError()` | `'ReferenceError'` | | | URIError | `new URIError()` | `'URIError'` | | | RangeError | `new RangeError()` | `'RangeError'` | | | EvalError | `new EvalError()` | `'EvalError'` | | | Math | `Math` | `'Math'` | | | JSON | `JSON` | `'JSON'` | IE8+ | | arguments | `(function(){return arguments;})()` | `'Arguments'` | IE9+ | | custom constructor | `new Beep()` | `'Beep'` | | | anonymous constructor | `new (function(){})()` | `''` | |
## Notes - If a value's constructor is an anonymous `function`, the implementation returns an empty `string`. ```javascript var Beep = function () { return this; }; var v = constructorName( new Beep() ); // returns '' ```
## Examples ```javascript var Float32Array = require( '@stdlib/array/float32' ); var Float64Array = require( '@stdlib/array/float64' ); var Int8Array = require( '@stdlib/array/int8' ); var Int16Array = require( '@stdlib/array/int16' ); var Int32Array = require( '@stdlib/array/int32' ); var Uint8Array = require( '@stdlib/array/uint8' ); var Uint8ClampedArray = require( '@stdlib/array/uint8c' ); var Uint16Array = require( '@stdlib/array/uint16' ); var Uint32Array = require( '@stdlib/array/uint32' ); var ArrayBuffer = require( '@stdlib/array/buffer' ); var Buffer = require( '@stdlib/buffer/ctor' ); var Symbol = require( '@stdlib/symbol/ctor' ); var constructorName = require( '@stdlib/utils/constructor-name' ); function noop() { // Do nothing... } var v = constructorName( 'a' ); // returns 'String' v = constructorName( 5 ); // returns 'Number' v = constructorName( NaN ); // returns 'Number' v = constructorName( null ); // returns 'Null' v = constructorName( void 0 ); // returns 'Undefined' v = constructorName( true ); // returns 'Boolean' v = constructorName( false ); // returns 'Boolean' v = constructorName( {} ); // returns 'Object' v = constructorName( [] ); // returns 'Array' v = constructorName( noop ); // returns 'Function' v = constructorName( /./ ); // returns 'RegExp' v = constructorName( new Date() ); // returns 'Date' v = constructorName( new Map() ); // returns 'Map' v = constructorName( new WeakMap() ); // returns 'WeakMap' v = constructorName( new Set() ); // returns 'Set' v = constructorName( new WeakSet() ); // returns 'WeakSet' v = constructorName( Symbol( 'beep' ) ); // returns 'Symbol' v = constructorName( new Error() ); // returns 'Error' v = constructorName( new TypeError() ); // returns 'TypeError' v = constructorName( new SyntaxError() ); // returns 'SyntaxError' v = constructorName( new URIError() ); // returns 'URIError' v = constructorName( new RangeError() ); // returns 'RangeError' v = constructorName( new ReferenceError() ); // returns 'ReferenceError' v = constructorName( new EvalError() ); // returns 'EvalError' v = constructorName( new Int8Array() ); // returns 'Int8Array' v = constructorName( new Uint8Array() ); // returns 'Uint8Array' v = constructorName( new Uint8ClampedArray() ); // returns 'Uint8ClampedArray' v = constructorName( new Int16Array() ); // returns 'Int16Array' v = constructorName( new Uint16Array() ); // returns 'Uint16Array' v = constructorName( new Int32Array() ); // returns 'Int32Array' v = constructorName( new Uint32Array() ); // returns 'Uint32Array' v = constructorName( new Float32Array() ); // returns 'Float32Array' v = constructorName( new Float64Array() ); // returns 'Float64Array' v = constructorName( new ArrayBuffer() ); // returns 'ArrayBuffer' v = constructorName( new Buffer( 'beep' ) ); // returns 'Buffer' v = constructorName( Math ); // returns 'Math' v = constructorName( JSON ); // returns 'JSON' function Person1() { return this; } v = constructorName( new Person1() ); // returns 'Person1' var Person2 = function () { return this; }; v = constructorName( new Person2() ); // returns '' ```