Symbol.prototype.description

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2020 年 1 月⁩ 起,所有主流浏览器均已支持。

Symbol 值的 description 访问器属性返回一个包含该符号描述的字符串,如果该符号没有描述,则返回 undefined

试一试

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"

描述

Symbol 对象可以用一个可选的描述来创建,该描述可用于调试,但不能用于访问符号本身。Symbol.prototype.description 属性可用于读取该描述。它与 Symbol.prototype.toString() 不同,因为它不包含围绕的 "Symbol()" 字符串。请参阅示例。

示例

使用 description

js
Symbol("desc").toString(); // "Symbol(desc)"
Symbol("desc").description; // "desc"
Symbol("").description; // ""
Symbol().description; // undefined

// well-known symbols
Symbol.iterator.toString(); // "Symbol(Symbol.iterator)"
Symbol.iterator.description; // "Symbol.iterator"

// global symbols
Symbol.for("foo").toString(); // "Symbol(foo)"
Symbol.for("foo").description; // "foo"

规范

规范
ECMAScript® 2026 语言规范
# sec-symbol.prototype.description

浏览器兼容性

另见