It is a primitive data type along with string, number, boolean, null and undefined. To create a new primitive symbol, you define it with the following syntax.
let mySymbol = Symbol();
You can pass a parameter to Symbol(), and that is used as the symbol description, useful just for debugging purposes.
let mySecondSymbol = Symbol('orange');
They are unique, and every time you invoke Symbol(), you get a new and unique symbol that is guaranteed to be different from all other symbols.
Symbol() === Symbol() // false
Symbol('orange') === Symbol('orange') // false
Even though every symbol gives a unique value we can't view them by logging.
console.log(Symbol()); // Symbol()
console.log(Symbol('orange')); // Symbol(orange)
It won't be enumerated in for...in loops, and are ignored by function such as JSON.stringify(), Object.keys() and Object.getOwnProperty. This makes them ideal for properties that you don't want to be included when serializing an object.
const user = {};
const email = Symbol();
user.name = 'Rahul';
user.age = 16;
user[email] = '[email protected]';
Object.keys(user);
// [ "name", "age" ]
JSON.stringify(user);
.. {"name":"Rahul","age":"16"}
Let's say you create a user object as shown above and have an object like, {name: "Rahul", age: 16, Symbol(): "[email protected]"}
What are the ways you can retrieve the value "[email protected]" from the user object?
Thank you for Readingā”
Comments (0)