---
hide_title: false
hide_table_of_contents: false
pagination_next: null
pagination_prev: null
---
# Symbol()

The `Symbol()` constructor returns a value of type **symbol**,
but is incomplete as a constructor because it does not support the syntax
"`new Symbol()`" and it is not intended to be subclassed. It may be used as
the value of an
[`extends`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Classes/extends)
clause of a `class` definition but a
[`super`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/super)
call to it will cause an exception.

## Syntax

```js
Symbol()
Symbol(description)
```

> **Note:** `Symbol()` can only be called without `new`. Attempting to construct it with `new` throws a [`TypeError`](../../globals/TypeError/TypeError.mdx).

### Parameters

- `description` _**optional**_
  - : A string. A description of the symbol which can be used for debugging but not to
    access the symbol itself.
