JavaScript - Symbols
Madhusudhana Dollu
JavaScript Developer
Outline
- What are Symbols?
-
The motivation for bringing symbols.
-
Symbols with description vs key
-
Symbols as object properties
-
Symbols defined by the standard
-
Iterables and Symbol.iterator, Symbol.asyncIterator
-
Other symbols: Symbol.match, Symbol.search
-
-
Using symbols in practice
-
Q & A.
What are Symbols?
Symbols are like unique tokens
Every new symbol is a new reference
and they are not objects
let s1 = Symbol();
let s2 = Symbol('my sym');
let s3 = Symbol('my sym');
s1 === s2; // false
s2 === s3; // false
unlike other types, new keyword is allowed while creating symbol as it supposed to return object.
The Motivation
Symbol Registry
Unlike the unique symbols defined by Symbol(), symbols in the symbol registry are shared
let s1 = Symbol.for('key');
Symbols as Object properties
let obj = {};
obj['prop1'] = 'value';
let s1 = Symbol();
obj[s1] = 'value for sym prop';
for(let key in obj) {
console.log(obj[key]);
}
Standard Symbols
Symbol.iterator
Symbol.asyncIterator
Symbol.match
Symbol.search
Symbol.replace
...
Symbol.iterator
Codepen Demos
Symbols in practice
Questions?
JavaScript Symbols
By Madhusudhana Dollu
JavaScript Symbols
- 519