Symbols, Iterators, Generators, and Proxies
Symbols are unique values; they can be used as an identifier because every time you call
Symbol(), it returns a unique symbol. Even the function returns a Symbol type. However, it cannot be called using the
new keyword because it is not a constructor. When stored in objects, they are not included when you iterate through the property list, so if you want to store anything as a property inside the object and do not want them to be exposed when you run
JSON.stringify, you can use Symbols to achieve that.
Iterator and Generator
Iterator and Generator are often used together. Generator functions are functions whose code is not executed immediately when invoked. When a value is to be returned from the generator, it needs to be called...