关于javascript:获取ES6符号的描述

Get the description of a ES6 Symbol

我想知道有没有一个很好的方法来获得一个符号的描述。

例如,

1
var s = Symbol(5);

ToString的默认实现只需打印符号(5)

我想找到一种提取实际描述的方法,即5


Symbol.description返回符号的描述。只需在您的案例中进行s.description。

REF:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/description


1
 String(symbol).slice(7, -1) || null

这是因为String(symbol)显式地将符号强制为字符串,例如Symbol('test')被强制为"Symbol(test)"

在"从7到-1"上进行拼接会在两个括号之间进行拼接,从而捕获描述test

注意:这可能不适用于对象描述(如Symbol({test}),因为对象被强制进入"[object Object]"


没有什么好方法可以做到这一点。但是,如果您在全局注册表中注册了一个符号,则可以使用Symbol.keyFor()

1
2
var s = Symbol.for(5);
console.log(Symbol.keyFor(s));

NPM上的symbol-description

返回所提供符号的说明:

1
2
const symDesc = require('symbol-description')
symDesc(Symbol('foo')) // foo

我刚刚在这里读了这个答案后发表了这篇文章。