# Function Name > Determine a function's name.
## Usage ```javascript var functionName = require( '@stdlib/utils/function-name' ); ``` #### functionName( fcn ) Returns the name of a `function`. ```javascript var v = functionName( Math.sqrt ); // returns 'sqrt' ``` If provided an **anonymous** `function`, the function returns an empty `string` or the string `"anonymous"`. ```javascript var v = functionName( function () {} ); // returns '' || 'anonymous' ``` If provided a value which is not a `function`, the function **throws** a `TypeError`. ```javascript try { functionName( 'beep' ); // throws error... } catch ( err ) { console.error( err ); } ```
## Notes - For more information regarding the naming of anonymous functions, see - [Function Names in ES6][2ality-function-names] - Webkit bug [7726][webkit-bug-7726] - [MDN][mdn-function-name]
## Examples ```javascript var Float64Array = require( '@stdlib/array/float64' ); var Buffer = require( '@stdlib/buffer/ctor' ); var Number = require( '@stdlib/number/ctor' ); var functionName = require( '@stdlib/utils/function-name' ); var v = functionName( Math.sqrt ); // returns 'sqrt' v = functionName( Float64Array ); // returns 'Float64Array' v = functionName( Buffer ); // returns 'Buffer' v = functionName( Date ); // returns 'Date' v = functionName( String ); // returns 'String' v = functionName( Boolean ); // returns 'Boolean' v = functionName( Function ); // returns 'Function' v = functionName( Number ); // returns 'Number' v = functionName( function foo() {} ); // returns 'foo' v = functionName( function () {} ); // returns '' || 'anonymous' ```