CHALLENGE
class Range {
constructor(start, end, step = 1) {
this.start = start;
this.end = end;
this.step = step;
}
[Symbol.iterator]() {
let current = this.start;
const { end, step } = this;
return {
next() {
if (current <= end) {
const value = current;
current += step;
return { value, done: false };
}
return { value: undefined, done: true };
}
};
}
}
const range = new Range(1, 10, 3);
const result = [...range].map(n => n ** 2);
console.log(result);
β€4π₯2
What is the output?
Anonymous Quiz
21%
[ 1, 9, 25, 49 ]
52%
[ 1, 16, 49, 100 ]
16%
[ 1, 9, 49 ]
11%
[ 1, 9, 25, 49, 81 ]
β€4π€1
CHALLENGE
const p1 = new Promise((resolve) => {
console.log("A");
resolve("B");
});
const p2 = p1.then((val) => {
console.log(val);
return "C";
});
p2.then((val) => console.log(val));
console.log("D");
β€4π€2
CHALLENGE
class EventEmitter {
#listeners = new Map();
on(event, listener) {
if (!this.#listeners.has(event)) {
this.#listeners.set(event, []);
}
this.#listeners.get(event).push(listener);
return this;
}
emit(event, ...args) {
const handlers = this.#listeners.get(event) ?? [];
handlers.forEach(fn => fn(...args));
return this;
}
}
const emitter = new EventEmitter();
const log = [];
emitter
.on("data", val => log.push(`A:${val}`))
.on("data", val => log.push(`B:${val * 2}`))
.on("end", () => log.push("done"));
emitter.emit("data", 5).emit("data", 3).emit("end");
console.log(log.join(","));
π1
What is the output?
Anonymous Quiz
37%
A:5,B:10,A:3,B:6,done
38%
A:5,A:3,B:6,B:10,done
22%
A:5,B:10,done,A:3,B:6
3%
A:5,B:25,A:3,B:9,done
β€4
npm is the only major package manager that runs dependency install scripts (e.g. postinstall) by default, and theyβve become too much of a security weakness, says Jamie, who works for GitHub (maintainers of npm). This RFC features further discussion of the idea and the tradeoffs involved.
Jamie Magee
Please open Telegram to view this post
VIEW IN TELEGRAM
β€4
CHALLENGE
const createModule = (() => {
const privateCache = new WeakMap();
return function(name) {
const state = { name, version: 1, active: true };
privateCache.set(state, { accessCount: 0 });
return {
getInfo() {
const meta = privateCache.get(state);
meta.accessCount++;
return `${state.name}@v${state.version}`;
},
getAccessCount() {
return privateCache.get(state).accessCount;
},
upgrade() {
state.version++;
return this;
}
};
};
})();
const mod = createModule("auth");
mod.upgrade().upgrade();
console.log(mod.getInfo());
console.log(mod.getAccessCount());
β€2π2
Mark, well known for maintaining Redux and creating Redux Toolkit, goes deep into his daily development workflow, including his use of OpenCode (an open source JavaScript-powered coding agent), how he manages his knowledge base, tasks, and more.
Mark Erikson
Please open Telegram to view this post
VIEW IN TELEGRAM
β€5π1