javascript中Symbol类型是什么_它如何创建唯一标识符?

admin 百科 11
Symbol 是 JavaScript 中用于创建唯一、不可变标识符的基本数据类型,通过 Symbol() 每次调用生成不相等的新值;可用作对象私有属性名,不被枚举;Symbol.for() 实现全局共享,Symbol.keyFor() 反查键名;不可参与运算、不能点号访问、JSON 序列化会忽略。

javascript中Symbol类型是什么_它如何创建唯一标识符?-第1张图片-佛山资讯网

Symbol 是 JavaScript 中的基本数据类型之一,用于创建唯一、不可变的值,主要解决对象属性名冲突问题。 它不是字符串,也不等于任何其他值(包括另一个用相同描述创建的 Symbol),因此天然适合作为唯一标识符。

Symbol 如何创建唯一标识符?

Symbol 通过 Symbol() 函数生成,每次调用都返回一个全新的、与其他所有 Symbol 都不相等的值:

  • Symbol('id')Symbol('id') 是两个不同的 Symbol,=== 比较结果为 false
  • 即使传入相同描述字符串(如 'user'),也只是用于调试显示,不影响唯一性
  • 不使用 new 关键字——Symbol 不是构造函数,否则会报错

Symbol 作为对象属性名的典型用途

由于 Symbol 值唯一且不会被枚举,常用来定义“私有”或内部属性,避免意外覆盖:

  • Object.defineProperty(obj, sym, { value: 42 }) 或直接 obj[sym] = 'hidden' 添加属性
  • 该属性不会出现在 for...inObject.keys()JSON.stringify()
  • 可通过 Object.getOwnPropertySymbols() 显式获取所有 Symbol 键

全局 Symbol 注册表:Symbol.for() 和 Symbol.keyFor()

如果需要跨模块共享同一个 Symbol,可使用全局注册表:

标签: javascript java js json 注册表 隐式转换 red

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~