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 September 2015.
概述
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 Language Specification # sec-symbol.prototype.tostring |
浏览器兼容性
BCD tables only load in the browser