使用 ES6 Symbol 作为唯一 ID 是一个好习惯吗?

wuc*_*uct 4 javascript ecmascript-6

由于Symbol是唯一且不可变的数据类型,Symbol因此对象属性的常见用例是。但是,将其用作唯一 ID 是否是一个好习惯?例如:

        const list = [
            {id: Symbol()},
            {id: Symbol()}
        ]
Run Code Online (Sandbox Code Playgroud)

Gar*_*ary 8

这完全取决于您的需求。如果您只需要它们作为您自己代码库中的标识符,它们就很好,当然比生成随机 ID 更好。

使用的一个主要缺点Symbol()是它们不可序列化。没有办法Symbol()跨网络/进程共享价值或将它们保存到磁盘/数据库。

在大多数情况下,使用自动递增 ID 可能更好。