首页 > web前端 > js教程 > 正文

JS 中的符号和对象♥

Linda Hamilton
发布: 2024-10-11 18:38:02
原创
691 人浏览过

Symbols and Objects in JS♥

符号数据类型

Symbol 是 JS 中的一种数据类型。它通常用于在 Javascript 中创建唯一键和隐藏对象键。

有两种类型的符号

  1. 本地符号 - 它们未在全局符号注册表中注册,即使具有相同的描述符,值也是唯一的。
  2. 全局符号 - 它们在全局符号注册表中注册,并且值不唯一

全局符号注册表:全局符号注册表是存储使用Symbol.for创建的符号的空间。

语法
在下面的示例中,“john”是描述符,key_one 和 key_two 是符号。

const key_one = Symbol("john"); //local symbol
const key_two = Symbol.for("john"); //global symbol
console.log(typeof key_one) // symbol
console.log(typeof key_two); //symbol
登录后复制

主要区别

相同值的描述符在局部符号中不相同

正如我之前所说,即使本地符号中的描述符相同,每个符号都是唯一的。让我们验证一下。

应用程序

const key_one = Symbol("john");
const key_two = Symbol("john");
key_one == key_two // false
key_one === key_two //false
登录后复制

相同值的描述符在全局符号中是相同的

const key_one = Symbol.for("foo");
const key_two = Symbol.for("foo");
console.log(key_one === key_two); //true
登录后复制

关于物体和符号的一些事实

  1. 符号不会转换为字符串。
  2. 您无法使用 for...in 循环访问这两个符号
  3. 即使使用 Object.keys() 属性也无法访问这两个符号
  4. 对象中的每个键都会转换为字符串偶数。
  5. 您可以使用Object.getOwnPropertySymbols()函数查看对象的所有符号

应用程序

const zero = Symbol("0");
const temp = {
 0:"zero",
 1:"one",
 [zero]:"zero",
 1.1:"one one",
}
const keys = Object.keys(temp); //["0","1","1.1"]
console.log(temp[1.1]) // one one
console.log(Object.getOwnPropertySymbols(temp)) // [Symbol(0)]
登录后复制

如何在Symbol.for()中获取描述符

使用Symbol.keyFor(symbol)可以获得全局符号的描述符

const key_one = Symbol.for("john")
Symbol.keyFor(key_one) // "john"
typeof Symbol.keyFor(key_one) //string
登录后复制

请在 dev.to 和 linkedin 上支持我?。 TY?

以上是JS 中的符号和对象♥的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!