Symbol 是 JavaScript 中唯一且不可变的原始类型,用于创建不会冲突的对象属性键;其值独一无二、不自动转字符串,需显式转换,且 Symbol 键不可枚举、不参与 JSON 序列化与原型查找。

Symbol 是 JavaScript 中一种原始数据类型,用来创建唯一、不可变的值,常用于对象属性键,避免命名冲突。
每个 Symbol 值都是独一无二的,即使描述(description)相同,它们也不相等:
例如:
const s1 = Symbol('foo');<br>const s2 = Symbol('foo');<br>console.log(s1 === s2); // false立即学习“Java免费学习笔记(深入)”;
Symbol 不会自动转换为字符串(隐式转换会报错),必须显式调用 .toString() 或 String(sym)。
Symbol 作为对象属性名时,能确保该属性不会被意外覆盖或遍历到(常规 for...in、Object.keys() 等都忽略 Symbol 键):
每个应用程序都要使用数据,Android应用程序也不例外,Android使用开源的、与操作系统无关的SQL数据库--SQLite,本文介绍的就是如何为你的Android应用程序创建和操作SQLite数据库。 数据库支持每个应用程序无论大小的生命线,除非你的应用程序只处理简单的数据,那么就需要一个数据库系统存储你的结构化数据,Android使用SQLite数据库,它是一个开源的、支持多操作系统的SQL数据库,在许多领域广泛使用,如Mozilla FireFox就是使用SQLite来存储配置数据的,iPhon
0
Object.defineProperty() 或字面量方式添加 Symbol 属性for...in、Object.keys()、JSON.stringify() 中Object.getOwnPropertySymbols() 获取所有 Symbol 键示例:
const id = Symbol('id');<br>const user = { name: 'Alice', [id]: 123 };<br>console.log(user[id]); // 123<br>console.log(Object.keys(user)); // ['name']<br>console.log(Object.getOwnPropertySymbols(user)); // [Symbol(id)]如果需要跨模块复用同一个 Symbol,可用全局注册表:
Symbol.for('myKey') 检查全局注册表,存在则返回,否则新建并登记Symbol.keyFor(sym) 返回已登记 Symbol 的键名(仅对 Symbol.for() 创建的生效)注意:普通 Symbol('xxx') 每次都新建,不进注册表;Symbol.for('xxx') 同名只生成一次。
[Symbol.iterator])基本上就这些。Symbol 不复杂,但容易忽略它的“唯一性”和“不可枚举性”这两个关键点。
以上就是javascript的symbol是什么_它如何创建唯一键?的详细内容,更多请关注php中文网其它相关文章!
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号