Symbol is a datatype in JS. It typically used for creating unique keys and hidden object keys in Javascript.
global symbol registry:The global symbol registry is a space where symbols created using Symbol.for are stored.
syntax
In Below example "john" is a descriptor and key_one and key_two are symbol.
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
As I told earlier that every symbol is unique even If descriptor is same in local symbols. Lets validate it.
app
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
app
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)]
Using Symbol.keyFor(symbol) can get you descriptor of global symbols
const key_one = Symbol.for("john") Symbol.keyFor(key_one) // "john" typeof Symbol.keyFor(key_one) //string
Please support me on dev.to and linkedin ?. TY?
Disclaimer: All resources provided are partly from the Internet. If there is any infringement of your copyright or other rights and interests, please explain the detailed reasons and provide proof of copyright or rights and interests and then send it to the email: [email protected] We will handle it for you as soon as possible.
Copyright© 2022 湘ICP备2022001581号-3