JavaScript
32K subscribers
1.03K photos
10 videos
33 files
715 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
Sponsored by Bryntum ๐Ÿ‘ฎโ€โ™€๏ธ
World Class Web Components

โ“ CHALLENGE


const weakMap = new WeakMap();
const arr = [1, 2, 3].map(n => ({ n }));

arr.forEach(obj => weakMap.set(obj, obj.n * 2));

arr.pop(); // Remove the last element

const result = arr.reduce((acc, obj) => acc + weakMap.get(obj), 0);

console.log(result);
Please open Telegram to view this post
VIEW IN TELEGRAM
โค2
What is the output?
Anonymous Quiz
24%
2
49%
6
17%
4
10%
10
2๐Ÿ‘8๐Ÿ”ฅ4๐Ÿค”3โค1
Sponsored by Bryntum ๐Ÿ‘ฎโ€โ™€๏ธ
World Class Web Components

๐ŸŒฒ LogTape: Simple Logging Library with Zero Dependencies

Iโ€™m digging this new style of library that promises support across all the main runtimes (Node, Deno, Bun) as well as edge functions and browser devtools.

Hong Minhee
Please open Telegram to view this post
VIEW IN TELEGRAM
2๐Ÿ‘4โค1๐Ÿ”ฅ1
Sponsored by Bryntum ๐Ÿ‘ฎโ€โ™€๏ธ
World Class Web Components

โ“ CHALLENGE


function* infiniteGenerator() {
let i = 0;
while (true) {
yield i++;
}
}

const weakMap = new WeakMap();
const gen = infiniteGenerator();

weakMap.set(gen, gen.next().value);

const result = weakMap.get(gen) + gen.next().value;

console.log(result);
Please open Telegram to view this post
VIEW IN TELEGRAM
2๐Ÿ‘15๐Ÿ”ฅ4โค3
What is the output?
Anonymous Quiz
33%
1
32%
2
23%
undefined
13%
Error
๐Ÿ”ฅ8๐Ÿ‘3
Sponsored by Bryntum ๐Ÿ‘ฎโ€โ™€๏ธ
World Class Web Components

๐Ÿ‘ธ Milkdown: Plugin-Driven WYSIWYG Markdown Editor Framework

A lightweight WYSIWYG Markdown editor based around a plugin system that enables a significant level of customization. Itโ€™s neat to see the docs are rendered by the editor itself. GitHub repo.

Mirone
Please open Telegram to view this post
VIEW IN TELEGRAM
2โค3๐Ÿ‘3๐Ÿ”ฅ3
๐Ÿ‘8โค1๐Ÿ”ฅ1๐Ÿคฃ1
Sponsored by Bryntum ๐Ÿ‘ฎโ€โ™€๏ธ
World Class Web Components

โ“ CHALLENGE


const weakMap = new WeakMap();
let obj = { name: 'initial' };

function changeName(obj) {
weakMap.set(obj, obj.name);
obj.name = 'changed';
}

changeName(obj);

console.log(weakMap.get(obj));
Please open Telegram to view this post
VIEW IN TELEGRAM
Sponsored by Bryntum ๐Ÿ‘ฎโ€โ™€๏ธ
World Class Web Components

โ“ CHALLENGE


const weakMap = new WeakMap();
const arr = [1, 2, 3, 4];
const objs = arr.map(n => ({ n }));

objs.forEach((obj, index) => weakMap.set(obj, arr.slice(0, index + 1)));

const result = objs.map(obj => weakMap.get(obj).reduce((acc, num) => acc + num, 0));

console.log(result);
Please open Telegram to view this post
VIEW IN TELEGRAM
๐Ÿ‘7โค2๐Ÿค”2
5๐Ÿ”ฅ7๐Ÿ‘2
Sponsored by Bryntum ๐Ÿ‘ฎโ€โ™€๏ธ
World Class Web Components

โ“ CHALLENGE


const weakMap = new WeakMap();
const arr = [{}, {}, {}];

arr.forEach((obj, index) => weakMap.set(obj, index));

arr.splice(1, 1); // Remove the second element

const result = arr.map(obj => weakMap.get(obj));

console.log(result);
Please open Telegram to view this post
VIEW IN TELEGRAM
๐Ÿ‘5๐Ÿ”ฅ2โค1
๐Ÿ‘8๐Ÿคฉ4โค1๐Ÿ”ฅ1
Sponsored by Bryntum ๐Ÿ‘ฎโ€โ™€๏ธ
World Class Web Components

๐ŸŒฒ How to Create an NPM Package in 2024

Sounds simple, but there are a lot of steps involved if you want to follow best practices, introduce useful tools, and get things just right. Matt Pocock walks through the process here, and thereโ€™s a 14-minute screencast too, if youโ€™d prefer to watch along.

Matt Pocock
Please open Telegram to view this post
VIEW IN TELEGRAM
1โค3๐Ÿ‘3๐Ÿ”ฅ1
Sponsored by Bryntum ๐Ÿ‘ฎโ€โ™€๏ธ
World Class Web Components

โœŒ๏ธ JS Dates are About to Be Fixed

Handling dates and times is famously a painful area for programmers and JavaScript hasnโ€™t done a lot to make it easier. Libraries like Moment.js help a lot, but Iago looks at how the Temporal proposal and its features will begin to help a lot more over time.

Iago Lastra
Please open Telegram to view this post
VIEW IN TELEGRAM
2โค3๐Ÿ‘3๐Ÿ”ฅ1
Sponsored by Bryntum ๐Ÿ‘ฎโ€โ™€๏ธ
World Class Web Components

โ“ CHALLENGE

const obj = {
outer: 1,
inner: {
outer: 10,
inner: 20
}
};

let result = 0;

with (obj) {
result += outer;
with (inner) {
result += outer + inner;
}
}

console.log(result);
Please open Telegram to view this post
VIEW IN TELEGRAM
๐Ÿ‘5๐Ÿค”2
What is the output?
Anonymous Quiz
58%
31
17%
21
9%
11
16%
30
2๐Ÿ”ฅ9โค6๐Ÿ‘6
โ“ CHALLENGE

const numbers = [0,0,0];

let i = 0;
const result = numbers.reduce((acc, _) => {
return ++acc;
}, i);

console.log(i, result);
Please open Telegram to view this post
VIEW IN TELEGRAM
๐Ÿ‘3
What is the output?
Anonymous Quiz
38%
0 0
17%
3 3
8%
3 2
37%
0 3
3โค12๐Ÿ‘8๐Ÿค”8๐Ÿ”ฅ2
๐ŸŠ Rspack 1.0: The Rust-Powered JavaScript Bundler

Far from being โ€˜yet another bundlerโ€™ with its own approach and terminology to learn, Rspack prides itself on being webpack API and ecosystem compatible, while offering many times the performance. The team now considers it production ready and encourages you to try your webpack-based projects on it.

Rspack Contributors
Please open Telegram to view this post
VIEW IN TELEGRAM
โค3๐Ÿ‘2๐Ÿ”ฅ1
CHALLENGE

function createCounter() {
let count = 0;
return {
increment() {
count++;
return count;
},
getCount() {
return count;
}
};
}

const counter = createCounter();

console.log(counter.increment());
console.log(counter.getCount());
console.log(counter.increment());
console.log(counter.getCount());
๐Ÿ‘7โค4๐Ÿ”ฅ3
โค10๐Ÿ‘7๐Ÿ”ฅ1