# Symbol
> [Symbol][mdn-symbol] factory.
## Usage
```javascript
var Symbol = require( '@stdlib/symbol/ctor' );
```
#### Symbol( \[description] )
Returns a [`Symbol`][mdn-symbol] primitive.
```javascript
var s = Symbol();
// returns
```
To aid debugging, provide a [symbol][mdn-symbol] `description`.
```javascript
var s = Symbol( 'beep' );
// returns
```
## Notes
- Unlike conventional constructors, the function does **not** support the `new` keyword.
- The function is only supported in environments which support [symbols][mdn-symbol]. In non-supporting environments, the value is `undefined`.
## Examples
```javascript
var hasSymbolSupport = require( '@stdlib/assert/has-symbol-support' );
var Symbol = require( '@stdlib/symbol/ctor' );
var s;
if ( hasSymbolSupport() ) {
s = Symbol( 'beep' );
// Print the value type:
console.log( typeof s );
// => 'symbol'
// Serialize the symbol as a string:
console.log( s.toString() );
// => 'Symbol(beep)'
// Test symbol equality:
console.log( s === Symbol( 'beep' ) );
// => false
} else {
console.log( 'Environment does not support symbols.' );
}
```
[mdn-symbol]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol