Symbol.prototype.toString()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年9月.
toString() 方法返回当前 symbol 对象的字符串表示。
语法
symbol.toString();
描述
Symbol 对象拥有自己的 toString 方法,因而遮蔽了原型链上的 Object.prototype.toString()。
symbol 原始值不能转换为字符串
symbol 原始值不能转换为字符串,所以只能先转换成它的包装对象,再调用 toString() 方法:
js
Symbol("foo") + "bar"; // TypeError: Can't convert symbol to string Symbol("foo").toString() + "bar"; // "Symbol(foo)bar",就相当于下面的: Object(Symbol("foo")).toString() + "bar"; // "Symbol(foo)bar" 示例
js
Symbol("desc").toString(); // "Symbol(desc)" // 内置通用(well-known)symbol Symbol.iterator.toString(); // "Symbol(Symbol.iterator) // global symbols Symbol.for("foo").toString(); // "Symbol(foo)" 规范
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-symbol.prototype.tostring> |