JavaScript
32K subscribers
1.03K photos
9 videos
33 files
711 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
CHALLENGE

function createCounter() {
let count = 0;
return {
increment: () => ++count,
decrement: () => --count,
getValue: () => count
};
}

const counter1 = createCounter();
const counter2 = createCounter();
counter1.increment();
counter1.increment();
counter2.increment();
console.log(counter1.getValue() + counter2.getValue());
What is the output?
Anonymous Quiz
20%
4
23%
1
50%
3
7%
2
πŸ‘6πŸ”₯6❀1
πŸ˜†
Please open Telegram to view this post
VIEW IN TELEGRAM
🀣42πŸ‘6
CHALLENGE

const original = {
name: 'Emma',
skills: ['JavaScript', 'Python'],
config: { theme: 'dark', notifications: true }
};

const copy1 = { ...original };
const copy2 = JSON.parse(JSON.stringify(original));
const copy3 = Object.assign({}, original);

copy1.name = 'Sarah';
copy1.skills.push('React');
copy1.config.theme = 'light';

console.log(original.name);
console.log(original.skills.length);
console.log(original.config.theme);
❀4🀣4
πŸ€”7πŸ‘2❀1
🎹 Happy Programmers Day!
Please open Telegram to view this post
VIEW IN TELEGRAM
3❀41πŸ”₯12πŸ‘7
CHALLENGE

const obj = {
name: 'Sarah',
regularMethod: function() {
return () => {
console.log(this.name);
};
},
arrowMethod: () => {
return () => {
console.log(this.name);
};
}
};

const regular = obj.regularMethod();
const arrow = obj.arrowMethod();
regular();
arrow();
❀6
❀3πŸ€”1
Please open Telegram to view this post
VIEW IN TELEGRAM
❀9πŸ€”4πŸ”₯2
CHALLENGE

console.log('1');
setTimeout(() => console.log('2'), 0);
Promise.resolve().then(() => console.log('3'));
setTimeout(() => console.log('4'), 0);
console.log('5');
Promise.resolve().then(() => {
console.log('6');
return Promise.resolve();
}).then(() => console.log('7'));
queueMicrotask(() => console.log('8'));
console.log('9');
πŸ”₯3❀1
❀4πŸ‘3πŸ”₯2
🀟 Node.js v24.8.0 (Current) Released

The big new feature is added support for inspecting HTTP/2 network calls made from Node in Chrome DevTools. There have also been some cryptography related enhancements and npm gets upgraded to v11.6.

MichaΓ«l Zasso
Please open Telegram to view this post
VIEW IN TELEGRAM
❀8πŸ‘3πŸ”₯2
CHALLENGE

class EventManager {
constructor() {
this.listeners = new Map();
}

addListener(event, callback) {
if (!this.listeners.has(event)) {
this.listeners.set(event, new Set());
}
this.listeners.get(event).add(callback);
}
}

const manager = new EventManager();
const obj = { name: 'Component' };
manager.addListener('click', () => console.log(obj.name));
obj = null;
console.log(manager.listeners.get('click').size);
❀2
πŸ‘€ Feedsmith 2.0: Web Feed Parsing and Generation Library

As well as parsing feeds of various types, you can also create RSS, Atom, JSON Feed, and OPML files with many common namespaces (iTunes, Podcast, Media RSS, Dublin Core, etc.) – here’s a quick start tutorial for using it both in browsers or Node. GitHub repo.

Maciej Lamberski
Please open Telegram to view this post
VIEW IN TELEGRAM
❀4πŸ‘3πŸ”₯1
CHALLENGE

const multiply = (a) => (b) => (c) => a * b * c;

const step1 = multiply(2);
const step2 = step1(3);
const result1 = step2(4);

const result2 = multiply(2)(3)(4);

const partialMultiply = multiply(5);
const result3 = partialMultiply(2)(3);

const doubler = multiply(2)(1);
const result4 = doubler(7);

console.log(result1, result2, result3, result4);
πŸ‘3❀2πŸ”₯1
🌟 Behind the Scenes of bun install" is an epic post by Lydia Hallie of the Bun project covering not only what Bun has done to make its package installation mechanism fast, but also the process and pain points of package installation more generally.

bun
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ€”3πŸ‘2❀1
CHALLENGE

const moduleCache = new Map();

async function loadModule(name) {
if (moduleCache.has(name)) {
return moduleCache.get(name);
}

const module = await Promise.resolve({
default: () => `Module ${name} loaded`,
version: '1.0.0'
});

moduleCache.set(name, module);
return module;
}

const results = [];
loadModule('auth').then(m => results.push(m.default()));
loadModule('auth').then(m => results.push(m.version));
loadModule('utils').then(m => results.push(m.default()));

setTimeout(() => console.log(results.join(', ')), 0);
πŸ€”4❀1