Symbol.prototype.description
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.
Thedescription accessor property ofSymbol values returns a string containing the description of this symbol, orundefined if the symbol has no description.
In this article
Try it
console.log(Symbol("desc").description);// Expected output: "desc"console.log(Symbol.iterator.description);// Expected output: "Symbol.iterator"console.log(Symbol.for("foo").description);// Expected output: "foo"console.log(`${Symbol("foo").description}bar`);// Expected output: "foobar"Description
Symbol objects can be created with an optional description which can be used for debugging but not to access the symbol itself. TheSymbol.prototype.description property can be used to read that description. It is different toSymbol.prototype.toString() as it does not contain the enclosing"Symbol()" string. See the examples.
Examples
>Using description
js
Symbol("desc").toString(); // "Symbol(desc)"Symbol("desc").description; // "desc"Symbol("").description; // ""Symbol().description; // undefined// well-known symbolsSymbol.iterator.toString(); // "Symbol(Symbol.iterator)"Symbol.iterator.description; // "Symbol.iterator"// global symbolsSymbol.for("foo").toString(); // "Symbol(foo)"Symbol.for("foo").description; // "foo"Specifications
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-symbol.prototype.description> |