A fun technical exploration of Symbol.dispose and using, two new features thatβll ease many headaches around cleaning up after yourself: closing connections, freeing resources, etc. Just watch out for the Muppetsβ¦
Mat Marquis
Please open Telegram to view this post
VIEW IN TELEGRAM
β€5π5π₯2
CHALLENGE
const cache = new Map();
function memoize(fn) {
return function(...args) {
const key = JSON.stringify(args);
if (cache.has(key)) {
return cache.get(key);
}
const result = fn(...args);
cache.set(key, result);
return result;
};
}
const fibonacci = memoize((n) => {
if (n <= 1) return n;
return fibonacci(n - 1) + fibonacci(n - 2);
});
console.log(fibonacci(5));
console.log(cache.size);
β€9π3π₯2
β€5π₯3π2
Please open Telegram to view this post
VIEW IN TELEGRAM
β€5π5π₯2
This is how the new generation learns about the Node.js EventLoop π
Please open Telegram to view this post
VIEW IN TELEGRAM
β€11π6π€£4π₯3
CHALLENGE
class CustomError extends Error {
constructor(message) {
super(message);
this.name = this.constructor.name;
}
}
try {
throw new CustomError("Something went wrong");
} catch (error) {
console.log(error.name);
console.log(error instanceof Error);
console.log(error instanceof CustomError);
console.log(typeof error.stack);
}β€8π7π₯6
What is the output?
Anonymous Quiz
36%
CustomError true true string
41%
CustomError true true undefined
14%
Error true false string
9%
CustomError false true undefined
Please open Telegram to view this post
VIEW IN TELEGRAM
π6π₯4β€3
CHALLENGE
function createUser(name = 'Guest', age = 0, active = true) {
return { name, age, active };
}
const users = [
createUser('Sarah', 25),
createUser('Mike'),
createUser('Emma', undefined, false),
createUser(null, 30)
];
console.log(users.map(u => `${u.name}-${u.age}-${u.active}`).join('|'));β€3π2
Does 50% memory savings in production sound good? Cloudflare, Igalia, and the Node project have collaborated on node-caged, a Docker image containing Node 25 with V8 pointer compression enabled. Matteo digs into all the details here β this is neat work, though there are tradeoffs to consider.
Matteo Collina
Please open Telegram to view this post
VIEW IN TELEGRAM
β€9π5π₯5π€©1
It's true π her pornhub page
Please open Telegram to view this post
VIEW IN TELEGRAM
π€£33π₯7π6β€1
CHALLENGE
const user = {
name: 'Sarah',
age: 25,
greet() {
return `Hello, I'm ${this.name}`;
}
};
const keys = Object.keys(user);
const values = Object.values(user);
const entries = Object.entries(user);
console.log(keys.length);
console.log(values.includes('Sarah'));
console.log(entries[2][0]);π₯6β€4π2
What is the output?
Anonymous Quiz
14%
2 false name
60%
3 true greet
20%
2 true age
5%
3 false greet
β€6π₯2
CHALLENGE
const user = {
name: 'Sarah',
profile: {
settings: {
theme: 'dark'
}
}
};
const config = {
name: 'John',
profile: null
};
console.log(user.profile?.settings?.theme);
console.log(config.profile?.settings?.theme);
console.log(user.profile?.preferences?.language);
console.log(config.profile?.settings?.theme ?? 'light');π5π₯3β€2
What is the output?
Anonymous Quiz
19%
dark undefined null light
31%
dark null undefined light
44%
dark undefined undefined light
6%
Sarah undefined undefined light
π3β€2
CHALLENGE
function testScope() {
var x = 'outer';
let y = 'outer';
if (true) {
var x = 'inner';
let y = 'inner';
console.log(x, y);
}
console.log(x, y);
}
testScope();β€5π5π₯2π€£2
What is the output?
Anonymous Quiz
32%
inner inner outer outer
44%
inner inner inner outer
15%
inner inner inner inner
9%
outer outer inner inner
π8β€4
A 100% Prettier-compatible JavaScript code formatter (and sister project of Oxlint) that boasts being 30x faster than Prettier and 3x faster than Biome. Since the alpha, it now supports embedded language formatting (JSX, YAML, HTML, etc), Tailwind CSS class sorting, import sorting, and more.
Boshen, Dunqing, and Sugiura (VoidZero)
Please open Telegram to view this post
VIEW IN TELEGRAM
π6β€1π₯1