CHALLENGE
class EventEmitter {
constructor() { this.events = {}; }
on(event, fn) { (this.events[event] ||= []).push(fn); }
emit(event, data) { this.events[event]?.forEach(fn => fn(data)); }
}
class Logger {
log(msg) { console.log(`LOG: ${msg}`); }
}
class Counter {
constructor() { this.count = 0; }
increment() { this.count++; console.log(this.count); }
}
function withLogging(target) {
const logger = new Logger();
return new Proxy(target, {
get(obj, prop) {
if (typeof obj[prop] === 'function') {
return function(...args) {
logger.log(`calling ${prop}`);
return obj[prop].apply(obj, args);
};
}
return obj[prop];
}
});
}
const emitter = withLogging(new EventEmitter());
const counter = new Counter();
emitter.on('tick', () => counter.increment());
emitter.emit('tick');
emitter.emit('tick');๐ค6
What is the output?
Anonymous Quiz
17%
LOG: on LOG: emit 1 LOG: emit 2
46%
LOG: calling on 1 2 LOG: calling emit LOG: calling emit
22%
calling on calling emit 1 calling emit 2
14%
LOG: calling on LOG: calling emit 1 LOG: calling emit 2
๐ฅ3โค2๐1
CHALLENGE
class Animal {
constructor(name) {
this.name = name;
}
speak() {
return `${this.name} makes a sound`;
}
}
class Dog extends Animal {
speak() {
return super.speak() + ' and barks';
}
}
const pet = new Dog('Rex');
console.log(pet.speak());
console.log(pet instanceof Animal);
console.log(pet.constructor.name);โค5๐1
What is the output?
Anonymous Quiz
43%
Rex makes a sound and barks true Dog
21%
Rex barks false Dog
26%
Rex makes a sound and barks true Animal
10%
Rex makes a sound true Dog
๐10๐ค1
Each year, Devographics runs an epic survey of as many JavaScript community members as it can and turns the results into an interesting report on the state of the ecosystem โ hereโs the results from 2024. If you have the time, fill it in, especially as they format it in a way where you can actually learn about stuff as you go.
Devographics
Please open Telegram to view this post
VIEW IN TELEGRAM
โค4๐ค2๐ฅ1
CHALLENGE
class DataProcessor {
constructor(value) {
this.value = value;
}
transform(fn) {
return new DataProcessor(fn(this.value));
}
getValue() {
return this.value;
}
}
const multiply = x => x * 2;
const add = x => x + 10;
const square = x => x * x;
const result = new DataProcessor(5)
.transform(multiply)
.transform(add)
.transform(square)
.getValue();
console.log(result);โค2
โค8๐3๐ฅ1
CHALLENGE
const Flyable = {
fly() { return 'flying'; }
};
const Swimmable = {
swim() { return 'swimming'; }
};
function mixin(Base, ...mixins) {
mixins.forEach(mixin => Object.assign(Base.prototype, mixin));
return Base;
}
class Bird {}
class Fish {}
const FlyingFish = mixin(class extends Fish {}, Flyable, Swimmable);
const instance = new FlyingFish();
console.log(instance.swim());
console.log(instance.fly());
console.log(instance instanceof Fish);What is the output?
Anonymous Quiz
20%
flying, swimming, false
46%
swimming, flying, true
23%
undefined, undefined, true
11%
swimming, flying, false
โค2๐ค1
CHALLENGE
function createCounter() {
let count = 0;
return function(increment = 1) {
count += increment;
return count;
};
}
const counter1 = createCounter();
const counter2 = createCounter();
console.log(counter1());
console.log(counter1(5));
console.log(counter2(3));
console.log(counter1());
console.log(counter2());โค11๐ค5
CHALLENGE
const arr = [1, 2, 3, 4, 5];
const obj = { a: 1, b: 2, c: 3 };
const result1 = Object.keys(obj).length;
const result2 = arr.length;
delete obj.b;
obj.d = 4;
const result3 = Object.keys(obj).length;
const result4 = arr.push(6);
arr.length = 3;
const result5 = arr.length;
const result6 = Object.keys(obj).join('');
console.log(result1, result2, result3, result4, result5, result6);
๐ค2
What is the output?
Anonymous Quiz
17%
2 5 3 6 3 acd
30%
3 5 2 6 3 adc
17%
3 5 3 7 3 acd
35%
3 5 3 6 3 acd
โค6๐1๐ฅ1
The maintainers of the Deno runtime reflect on the recent npm ecosystem security issues and show off how Denoโs non-permissive explicit โsecure by defaultโ model can help.
Andy Jiang
Please open Telegram to view this post
VIEW IN TELEGRAM
โค5๐ฅ3๐2๐คฉ2
CHALLENGE
const multiply = (a) => (b) => (c) => a * b * c;
const step1 = multiply(2);
const step2 = step1(3);
const result1 = step2(4);
const partialMult = multiply(5)(6);
const result2 = partialMult(7);
const directResult = multiply(1)(8)(9);
console.log(result1);
console.log(result2);
console.log(directResult);
console.log(typeof step1);
console.log(typeof partialMult);
โค1
What is the output?
Anonymous Quiz
25%
24 210 72 object object
24%
6 18 9 function function
22%
NaN NaN NaN function function
29%
24 210 72 function function
๐คฃ5๐3โค1
Many features that once required third-party packages are now built into the runtime itself. Hereโs a look at some of the most notable that you may want to experiment with, prior to reducing unnecessary dependencies.
Lizz Parody
Please open Telegram to view this post
VIEW IN TELEGRAM
โค9๐ฅ4๐2๐คฉ1
CHALLENGE
function mystery(arr, depth = 0) {
if (arr.length <= 1) return arr;
const mid = Math.floor(arr.length / 2);
const left = mystery(arr.slice(0, mid), depth + 1);
const right = mystery(arr.slice(mid), depth + 1);
const result = [];
let i = 0, j = 0;
while (i < left.length && j < right.length) {
result.push(left[i] <= right[j] ? left[i++] : right[j++]);
}
return result.concat(left.slice(i)).concat(right.slice(j));
}
const arr = [3, 1, 4, 1, 5];
console.log(mystery(arr));โค5
What is the output?
Anonymous Quiz
23%
[5, 4, 3, 1, 1]
44%
[1, 1, 3, 4, 5]
16%
[1, 3, 1, 4, 5]
17%
[3, 1, 4, 1, 5]
๐ฅ3โค2๐2
We're thrilled that React is coming under the The Linux Foundation to create the React Foundation.
React doesnโt live in isolation - It works alongside Node.js, Electron, Webpack, and more. A dedicated foundation means more collaboration, security, and sustainability across the ecosystem.
OpenJS Foundation
Please open Telegram to view this post
VIEW IN TELEGRAM
โค11๐7๐ค1
CHALLENGE
const ws = new WeakSet();
const obj1 = { name: 'first' };
const obj2 = { name: 'second' };
const obj3 = obj1;
ws.add(obj1);
ws.add(obj2);
ws.add(obj3);
console.log(ws.has(obj1));
console.log(ws.has(obj3));
console.log(ws.has({ name: 'first' }));
console.log(ws.size);
โค2