The toString()
method of Symbol
values returns a string representing this symbol value.
The toString()
method of Symbol
values returns a string representing this symbol value.
toString()
None.
A string representing the specified symbol value.
The Symbol
object overrides the toString
method of Object
; it does not inherit Object.prototype.toString()
. For Symbol
values, the toString
method returns a descriptive string in the form "Symbol(description)"
, where description
is the symbol's description.
The toString()
method requires its this
value to be a Symbol
primitive or wrapper object. It throws a TypeError
for other this
values without attempting to coerce them to symbol values.
Because Symbol
has a [@@toPrimitive]()
method, that method always takes priority over toString()
when a Symbol
object is coerced to a string. However, because Symbol.prototype[@@toPrimitive]()
returns a symbol primitive, and symbol primitives throw a TypeError
when implicitly converted to a string, the toString()
method is never implicitly called by the language. To stringify a symbol, you must explicitly call its toString()
method or use the String()
function.
Symbol("desc").toString(); // "Symbol(desc)" // well-known symbols Symbol.iterator.toString(); // "Symbol(Symbol.iterator)" // global symbols Symbol.for("foo").toString(); // "Symbol(foo)"
The only way to make JavaScript implicitly call toString()
instead of [@@toPrimitive]()
on a symbol wrapper object is by deleting the @@toPrimitive
method first.
Warning: You should not do this in practice. Never mutate built-in objects unless you know exactly what you're doing.
delete Symbol.prototype[Symbol.toPrimitive]; console.log(`${Object(Symbol("foo"))}`); // "Symbol(foo)"
Desktop | Mobile | Server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | Deno | Node.js | ||
toString |
38 | 12 | 36 | 25 | 9 | 38 | 36 | 25 | 9 | 3.0 | 38 | 1.0 | 0.12.0 |
© 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/toString