Symbol 是 JavaScript 中唯一且不可变的原始类型,用于避免属性名冲突;每个 Symbol 值都独一无二,即使描述相同也不相等,需用 Symbol() 函数创建,不支持字面量语法。

Symbol 是 JavaScript 中一种原始数据类型,用来创建唯一、不可变的值,常用于对象属性名,避免命名冲突。
Symbol 类型的基本特点
每个 Symbol 值都是独一无二的,即使描述(description)相同,它们也不相等。Symbol 不是对象,没有字面量语法,必须用 Symbol() 函数调用生成。
例如:
const s1 = Symbol('foo');
const s2 = Symbol('foo');
console.log(s1 === s2); // false
立即学习“Java免费学习笔记(深入)”;
如何创建唯一的 Symbol 值
最常用方式就是直接调用 Symbol(),不传参或传字符串描述:
- Symbol() —— 每次调用都返回一个全新、唯一值
- Symbol('desc') —— 描述仅用于调试显示,不影响唯一性
- Symbol.for('key') —— 全局注册表中查找/创建,相同 key 返回同一个 Symbol(非唯一)
-
Symbol.keyFor(sym) —— 获取已用
Symbol.for注册的 Symbol 的 key
Symbol 的典型用途
主要解决对象属性名冲突问题,比如:
标签: javascript java js json 注册表
还木有评论哦,快来抢沙发吧~