Symbol 是 JS 中的一种数据类型。它通常用于在 Javascript 中创建唯一键和隐藏对象键。
全局符号注册表:全局符号注册表是存储使用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
应用程序
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.keyFor(symbol)可以获得全局符号的描述符
const key_one = Symbol.for("john") Symbol.keyFor(key_one) // "john" typeof Symbol.keyFor(key_one) //string
请在 dev.to 和 linkedin 上支持我? TY?
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3