Roadmap › JavaScript (ES5 → ES2025) & TypeScript Basics › Module: Advanced and TypeScript
Lessons in this course (16)
14. Generators, iterators, Map/Set, WeakMap and Proxy
AdvancedMediumLesson 14 of 16
js
function* idGenerator() { let id = 1; while (true) yield id++; }
const ids = idGenerator();
ids.next().value; // 1
const map = new Map([["a", 1]]); // any key type, keeps insertion order, .size
const set = new Set([1, 2, 2, 3]); // unique values → [...set] = [1, 2, 3]
new Set([1, 2]).union(new Set([2, 3])); // ES2025 Set methods
const meta = new WeakMap(); // keys must be objects; doesn't prevent garbage collection
meta.set(domNode, { clicks: 0 });
const validator = new Proxy({}, {
set(target, key, value) {
if (key === "age" && typeof value !== "number") throw new TypeError("age must be a number");
target[key] = value;
return true;
},
});