CHALLENGE
class Calculator {
constructor(value) {
this.value = value;
}
add(num) {
this.value += num;
return this;
}
getValue = () => this.value;
}
const calc = new Calculator(10);
const addMethod = calc.add;
const getValueMethod = calc.getValue;
addMethod.call({value: 5}, 3);
console.log(calc.getValue());
console.log(getValueMethod());โค5๐2๐ฅ2๐คฉ2
๐3โค2
A smooth, fast way to browse packages on the official npm registry. Itโs certainly fast, smooth, and you see more info up front and center - check out the axios page for example. โWeโre not replacing the npm registry, but instead providing an elevated developer experience through a fast, modern UI.โ
npmx
Please open Telegram to view this post
VIEW IN TELEGRAM
๐ฅ5โค2๐2๐คฃ1
CHALLENGE
const wm = new WeakMap();
const obj1 = { name: 'Sarah' };
const obj2 = { name: 'Mike' };
wm.set(obj1, 'developer');
wm.set(obj2, 'designer');
console.log(wm.get(obj1));
console.log(wm.has(obj2));
console.log(wm.get({ name: 'Sarah' }));
console.log(wm.delete(obj1));
console.log(wm.has(obj1));
โค4๐ฅ2๐1
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๐ฅ2๐1
โค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๐6๐ฅ6
What is the output?
Anonymous Quiz
37%
CustomError true true string
40%
CustomError true true undefined
16%
Error true false string
7%
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๐4๐คฉ1
It's true ๐ her pornhub page
Please open Telegram to view this post
VIEW IN TELEGRAM
๐คฃ31๐ฅ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
12%
2 false name
63%
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โค1