JavaScript
32.2K subscribers
1.08K photos
10 videos
33 files
761 links
A resourceful newsletter featuring the latest and most important news, articles, books and updates in the world of #javascript 🚀 Don't miss our Quizzes!

Let's chat: @nairihar
Download Telegram
2
CHALLENGE

let obj1 = { name: 'Sarah' };
let obj2 = { name: 'Mike' };

obj1.ref = obj2;
obj2.ref = obj1;

let weakRef = new WeakRef(obj1);
let registry = new FinalizationRegistry((value) => {
console.log(`Cleanup: ${value}`);
});

registry.register(obj1, 'obj1-cleaned');
obj1 = null;
obj2 = null;

console.log(weakRef.deref()?.name || 'undefined');
console.log('Script completed');
CHALLENGE

class EventEmitter {
constructor() {
this.events = {};
}

on(event, callback) {
this.events[event] = this.events[event] || [];
this.events[event].push(callback);
return this;
}

emit(event, data) {
if (this.events[event]) {
this.events[event].forEach(cb => cb(data));
}
return this;
}
}

const emitter = new EventEmitter();
emitter.on('test', x => console.log(x * 2))
.on('test', x => console.log(x + 5))
.emit('test', 10);
What is the output?
Anonymous Quiz
20%
15 20
59%
20 15
11%
25
10%
10 10
7
🎉 JavaScript Turns 30 Years Old

Back in May 1995, a 33 year old Brendan Eich built the first prototype of JavaScript in just ten days, originally codenamed Mocha (and then LiveScript). On December 4, 1995, Netscape and Sun Microsystems officially announced 'JavaScript' in a press release as "an easy-to-use object scripting language designed for creating live online applications that link together objects and resources on both clients and servers."

Over thirty years, JavaScript has cemented its place at the heart of the Web platform, and more broadly in desktop apps, operating systems (e.g. Windows' use of React Native), mobile apps, and even on microcontrollers.
Please open Telegram to view this post
VIEW IN TELEGRAM
13👍4🤔1
CHALLENGE

const map = new Map([
['a', 1],
['b', 2],
['c', 3]
]);

const key = { id: 'key' };
map.set(key, 4);
map.set(key, 5);

const result = [];
result.push(map.get('a'));
result.push(map.get(key));
result.push(map.size);
result.push(map.has({ id: 'key' }));

console.log(result);
2👍2🔥2🤔1
CHALLENGE

const promise1 = Promise.resolve(10);
const promise2 = promise1.then(x => x * 2);
const promise3 = promise2.then(x => {
console.log(x);
return x + 5;
});
const promise4 = promise2.then(x => {
console.log(x);
return x * 3;
});
Promise.all([promise3, promise4]).then(results => {
console.log(results);
});
3👍3🤔2🤩2
CHALLENGE

const x = 5;
const y = 10;

const obj = {
x,
y,
z: x + y,
calculate() {
return this.x * this.y;
},
[x + y]: 'computed'
};

console.log(obj.calculate() + obj[15] + obj.z);
3
10
CHALLENGE

const curry = (fn) => {
return function curried(...args) {
if (args.length >= fn.length) {
return fn.apply(this, args);
}
return (...nextArgs) => curried(...args, ...nextArgs);
};
};

const multiply = (a, b, c) => a * b * c;
const curriedMultiply = curry(multiply);

const step1 = curriedMultiply(2);
const step2 = step1(3);
const result = step2(4);

console.log(result);
What is the output?
Anonymous Quiz
18%
function
19%
9
46%
24
17%
undefined
👍32
CHALLENGE

const a = { x: 1 };
const b = a;
const c = { x: 1 };

b.x = 2;
const d = b;
d.x = 3;

console.log(a.x);
console.log(b.x);
console.log(c.x);
console.log(a === b);
console.log(a === c);
3
6👍4
⚠️ 🔵 Denial of Service and Source Code Exposure in React Server Components

Security researchers have found and disclosed two additional vulnerabilities in React Server Components while attempting to exploit the patches in last week’s critical vulnerability.

If you already updated for the Critical Security Vulnerability last week, you will need to update again.

If you updated to 19.0.2, 19.1.3, and 19.2.2, these are incomplete and you will need to update again.

December 11, 2025 by The React Team
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🤔2
CHALLENGE

class Subject {
constructor() {
this.observers = [];
}
attach(observer) {
this.observers.push(observer);
}
notify(data) {
this.observers.forEach(obs => obs.update(data));
}
}

const subject = new Subject();
subject.attach({ update: (d) => console.log(d * 2) });
subject.attach({ update: (d) => console.log(d + 5) });
subject.notify(10);
1
What is the output?
Anonymous Quiz
29%
20 25
25%
10 15
14%
15 20
31%
20 15
👍42🤩1
👀 Many Devs blame Vercel for Next.js-related React security vulnerabilities.

Because making new frameworks like Next.js is relatively easy nowadays, someone with enough social influence can literally destroy Vercel's business by popularising some other framework, which, by the way, would have nearly identical problems anyway, because this was mostly the React problem itself.

Tigran Bayburtsyan
Please open Telegram to view this post
VIEW IN TELEGRAM
4🤔2
CHALLENGE

const obj = { a: 1, b: 2, c: 3 };
Object.defineProperty(obj, 'd', {
value: 4,
enumerable: false
});

const entries = Object.entries(obj);
const keys = Object.keys(obj);
const values = Object.values(obj);

console.log(entries.length + keys.length + values.length);
4🤩1